概述
文章目录
- 1.XA协议
- 2.1.两阶段提交(Two-phase Commit,2PC)
- 2.2.三阶段提交(3PC)
1.XA协议
是X/OPEN 提出的分布式事务处理规范。XA则规范了TM与RM之间的通信接口,在TM与多个RM之间形成一个双向通信桥梁,从而在多个数据库资源下保证ACID四个特性。目前知名的数据库,如Oracle, DB2,mysql等,都是实现了XA接口的,都可以作为RM。
XA是数据库的分布式事务,强一致性,在整个过程中,数据一张锁住状态,即从prepare到commit、rollback的整个过程中,TM一直把持折数据库的锁,如果有其他人要修改数据库的该条数据,就必须等待锁的释放,存在长事务风险。
2.1.两阶段提交(Two-phase Commit,2PC)
是XA用于在全局事务中协调多个资源的机制
顾名思义,两阶段提交在处理分布式事务时分为两个阶段:voting(投票阶段,有的地方会叫做prepare阶段)和commit阶段。
2pc中存在两个角色,事务协调者(??该角色是由什么组件充当)和事务参与者,事务参与者通常是指应用的数据库
两阶段提交协议解决的是分布式数据库数据强一致性问题
2.2.三阶段提交(3PC)
三阶段提交协议在协调者和参与者中都引入超时机制,并且把两阶段提交协议的第一个阶段拆分成了两步:询问,然后再锁资源,最后真正提交。三阶段提交的三个阶段分别为:can_commit,pre_commit,do_commit。
最后
以上就是认真胡萝卜为你收集整理的XA协议的全部内容,希望文章能够帮你解决XA协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复