首页 > 解决方案 > 如何管理微服务环境中的子事务

问题描述

我们有具有多种服务的微服务环境。流程中的第一个服务创建correlationId (cid)。并将其从一项服务传递到另一项服务以供将来跟踪。

我们确实理解每个服务都需要创建一个额外的“EventId”,以便在内部使用它。但这会导致多个问题。

  1. 它破坏了我们的重复数据删除机制 我们有重复数据删除机制,它检查是否相同的 cid 在最后 5 分钟内到达,它将调用它重复数据删除并将其丢弃,但如果服务 A 需要在同一流程下多次调用服务 B,我们的重复数据删除将丢弃有效消息,因为它们不是真正的重复数据删除

  2. 我们应该总是创建一个内部 eventId 还是只在我们将记录插入数据源(例如 mysql)时创建

  3. 有这样一个架构的例子会很棒

标签: javamicroservicesmessage

解决方案


推荐阅读