分布式事务

2018-07-23  本文已影响0人  琥珀灬

基于XA协议的两阶段提交方案(2pc)

第一阶段 第二阶段

XA 规范的基础是两阶段提交协议:第一阶段是表决阶段,所有参与者都将本事务能否成功的信息反馈发给协调者;第二阶段是执行阶段,协调者根据所有参与者的反馈,通知所有参与者,步调一致地在所有分支上提交或者回滚,两阶段提交方案锁定资源时间长,对性能影响很大,基本不适合解决微服务事务问题。


TCC方案

        TCC事务是Try、Commit、Cancel三种指令的缩写,其逻辑模式类似于XA两阶段提交,但是实现方式是在代码层面来人为实现,Try部分完成业务的准备工作,confirm部分完成业务的提交,cancel部分完成事务的回滚。

优点:

TCC方案让应用自己定义数据库操作的粒度,使得降低锁冲突、提高吞吐量成为可能。 

缺点:

对应用的侵入性强。业务逻辑的每个分支都需要实现try、confirm、cancel三个操作,应用侵入性较强,改造成本高。

实现难度较大。需要按照网络状态、系统故障等不同的失败原因实现不同的回滚策略。为了满足一致性的要求,confirm和cancel接口必须实现幂等


MQ事务

利用消息中间件来异步完成事务的后一半更新,实现系统的最终一致性。这个方式避免了像XA协议那样的性能问题。


GTS–分布式事务解决方案(阿里分布式组件)

性能超强、应用侵入性极低

东西比较多自行深入了解

上一篇下一篇

猜你喜欢

热点阅读