X/Open 分布式事务模型(XA 协议)
-
X/Open DTP 包含以下三种角色:AP:Application,表示应用程序;RM:Resource Manager,表示资源管理器,比如数据库;TM:Transaction Manager,表示事务管理器,一般指事务协调者,负责协调和管理事务,提供 AP 编程接口或管理 RM 。可以理解为 Spring 中提供的 Transaction Manager;
&emspTM 和多个 RM 之间的事务控制,是基于 XA 协议(XASpecification)来完成的。XA 协议是 X/Open 提出的分布式事务处理规范,也是分布式事务处理的工业标准,它定义了 xa_ 和 ax_ 系列的函数原型及功能描述、约束等。目前 Oracle、MySQL、DB2 都实现了 XA 接口,所以它们都可以作为 RM;
&emsp两阶段提交协议:事务的准备阶段:事务管理器(TM)通知资源管理器(RM)准备分支事务,记录事务日志,并告知事务管理器的准备结果;&emsp事务的提交或者回滚阶段:如果所有的资源管理器(RM)在准备阶段都明确返回成功,则事务管理器(TM)向所有的资源管理器(RM)发起事务提交指令完成数据的变更。反之,如果任何一个资源管理器(RM)明确返回失败,则事务管理器(TM)会向所有资源管理器(RM)发送事务回滚指令;
- 优点:简单,降低事务提交失败率;
- 缺点:同步阻塞(对于任何一次指令都必须要有明确的响应才能继续进行下一步)、过于保守(任何一个节点失败都会导致数据回滚);
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏