java - 如何管理微服务环境中的子事务
问题描述
我们有具有多种服务的微服务环境。流程中的第一个服务创建correlationId (cid)。并将其从一项服务传递到另一项服务以供将来跟踪。
我们确实理解每个服务都需要创建一个额外的“EventId”,以便在内部使用它。但这会导致多个问题。
它破坏了我们的重复数据删除机制 我们有重复数据删除机制,它检查是否相同的 cid 在最后 5 分钟内到达,它将调用它重复数据删除并将其丢弃,但如果服务 A 需要在同一流程下多次调用服务 B,我们的重复数据删除将丢弃有效消息,因为它们不是真正的重复数据删除
我们应该总是创建一个内部 eventId 还是只在我们将记录插入数据源(例如 mysql)时创建
有这样一个架构的例子会很棒
解决方案
推荐阅读
- laravel - 部分菜单 - 返回数据 - Laravel
- eclipse - Android Studio 中的布局问题,但在 Eclipse 中没有?
- sql-server - 查询给定日期未解决问题的运行记录
- compilation - 使用 Angular-CLI 进行转译和编译
- c# - 使用反射调用泛型方法时出现“对象与目标类型不匹配”
- c# - 如何在 Xamarin.Forms 的 MainPage 上创建动态按钮列表?
- javascript - 扩展 Angular 类的正确方法
- jquery - 如何在 api 每秒更改数据时将来自 API 的数据存储在 ajax 变量中?
- html - How to maintain focus state on parent item in dropdown menu?
- javascript - 使用绝对定位将 div 定位在另一个 div 附近