XA的工作原理
提示:谢谢你这么好看,还关注了我
一、XA是什么?
定义:XA 规范 是 X/Open 组织定义的分布式事务处理(DTP【分布式事务领域最早的一个标准】,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。
二、流程解读
第一阶段:准备阶段
这个阶段事务协调者TC 会向事务参与者( 资源管理器) RM (在XA标准中,这些RM都是由数据库实现的,意思就是数据库本身实现了这种功能)发起一个准备的请求,告诉它们可以去准备执行了。然后TC就通知这些数据库,“你啊,该干嘛就干嘛去吧,执行自己的任务吧”。但是执行完,你不要提交,你就把你做的事务放在那里,把执行的结果告知TC,就绪就代表这事务执行成功了,这个时候TC事务协调者就会根据数据库响应的结果而去判断下一阶段要干什么。在这个阶段中,如果有任何一个RM失败了,TC就会认为这个任务是有问题的,那就将已经执行成功的RM全部回滚。RM就自然去回滚之前的操作了,这样数据就恢复到以前的状态了。
第二阶段:提交阶段
在每一个RM都成功的情况下,TC就会告知每个RM让他们进行一个提交,RM随即会真的去提交事务。