我是靠谱客的博主 认真胡萝卜,最近开发中收集的这篇文章主要介绍XA协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 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协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部