【发布时间】:2020-04-27 23:52:15
【问题描述】:
我有一个 mule 流,可以说流 X,它调用外部 rest api (API 1) 在系统 B 中创建一个用户,传递来自系统 A 的有效负载。一旦在系统 B 中创建用户,要求是插入来自系统 B 的用户 ID 以及来自系统 A 的用户 ID(存在于 json 有效负载中)到相关数据库表。如何使这两个操作原子化,以便在系统 B 中创建用户时关联表将具有关联记录。我们有一个 mule Rest API,可以获取用户的源和目标系统 ID 并插入到关联表中。
我认为我们不能在处理两个分布式系统时使用 XA 事务。
我们不能使用单个有效负载属性/或属性组合来检查用户是否已经在系统 B 中创建。这就是为什么我们有关联表来关联两个系统之间的用户。我需要一个模式来确保在系统 B 中创建用户时插入相关表。
我了解了 saga 模式和补偿事务,但不知道如何在 mule 中实现。
【问题讨论】:
-
XA 适用于分布式事务系统,如数据库。 REST 不是事务性的,因此您不能将 XA 与 REST 请求一起使用。
标签: rest transactions mule saga