【分布式事务】X/Open 分布式事务模型

1,177 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

X/Open分布式事务模型

分布式事务问题理论模型

分布式事务问题也是分布式数据一致性问题,如何在分布式场景中保证多个节点数据的一致性。分布式事务产生核心原因是存储资源的分布性,比如多个数据库或MySQL和Redis两种不同存储设备的数据一致性等。在实际应用中,尽可能从设计层面避免分布式事务的问题。

  1. X/Open分布式事务模型

X/Open DTP(X/Open Distributed Transaction Processing Reference Model)是X/Open组织定义的一套分布式事务的标准,这个标准提出了使用两阶段提交(2PC,Two-Phase-Commit)来解决分布式事务问题。

X/Open DTP中包含以下三种角色

  • AP(Application):应用程序
  • RM(Resource Manager):资源管理器,数据库
  • TM(Transaction Manager):事务管理器,负责协调和管理事务,提供应用编程接口或管理数据库。

以上图与本地事务原理基本相同,唯一不同是如果此时RM代表数据库,那TM能够管理多个数据库的事务,步骤如下:

  • 配置TM,把多个RM注册到TM,相当于TM注册RM作为数据源
  • AP从TM管理的RM中获取连接,如果RM是数据库则获取JDBC连接
  • AP向TM发起一个全局事务,生成全局事务ID(XID),XID会通知各个RM
  • AP通过第二步获取连接直接操作RM完成数据操作,AP在每次操作市会把XID传递给RM
  • AP结束全局事务,TM会通知各个RM全局事务的结束
  • 根据各个RM的事务执行结果,执行提交或回滚操作