小编Dmi*_*yov的帖子

跨多个微服务的 2PC 分布式事务?

我阅读了一些关于2 Phase Commit/XA 分布式事务以及 JTA 如何支持它的信息。似乎有许多资源管理器 - RM(例如 RDBMS 或 JMS),以及一个管理跨多个 RM 的全局事务的TransactionManager (TM)实例。 TM <-> RM 通讯

我知道最好使用Saga 模式,但想想还是很有趣的:

  1. 2PC/XA 分布式事务是否提供了仅从一个应用程序和一个 TM 与许多 RM 进行事务处理的可能性?
  2. 如果没有 - 如何在许多微服务之间使用2PC/XA 分布式事务来提供使用 2PC 的能力,如果每个微服务只能访问自己的数据库?我很高兴看到一个例子
  3. 我们是否需要使用TransactionManager服务作为单独的微服务来提供许多微服务之间的 2PC?

UPD: 在 JTA 世界 TransactionManager 中,不提供用于跨微服务管理事务的REST API。LIXA 提供了这种能力。除答案外还附有示例的文章:)

java 2phase-commit distributed-system distributed-transactions microservices

5
推荐指数
1
解决办法
265
查看次数