【问题标题】:Mulesoft how to rollback rest api callMulesoft 如何回滚 rest api 调用
【发布时间】: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


【解决方案1】:

我不相信 REST API 有回滚。但它的定义。是Statelessness

您应该提供在每个 API 调用级别上重做工作(伪事务)的方法,并“手动”执行此回滚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多