一、概念
分布式事务就是将多个节点的事务看成一个整体处理
分布式事务由事务参与者、资源服务器、事务管理器等组成
常见的分布式事务的例子: 支付、下订单等
二、实现思路
两段式事务和三段式事务
基于XA的分布式事务
基于消息的最终一致性方案
TCC编程式补偿事务(被认为最好的方式)
1、两段式事务(很少使用)
基于XA协议的两阶段提交
保证了数据的强一致性
commit阶段出现问题,事务出现不一致,需要人工处理。
效率低下,性能与本地事务相差10倍。
实践: 使用Atomikos分布式事务
2、基于XA的分布式事务
一个事务管理器(TM)和多个资源管理器(RM)组成。
RM一般指数据库,TM对应程序中的数据源,数据源统一管理资源管理器。
提交分为两个阶段: prepare和commit
实践: 使用Atomikos分布式事务
3、基于消息的最终一致性方案(用的比较广泛)
4、TCC编程式补偿事务
优点:逻辑清晰、流程简单
缺点: 数据一致性比XA还要差,可能出错的点比较多
TCC属于应用层的一种补偿方式,程序员需要写大量的代码
三、基于消息的最终一致性方案与TCC编程式补偿事务的区别
基于消息事务是强一致性事务,会存在资源浪费
TCC事务是柔性事务,在try阶段要对资源做预留
TCC事务在确认或取消阶段释放资源
与基于消息事务对比,TCC的时效性更好
四、分布式事务框架
全局事务服务(Global Transaction Service,简称GTS)
蚂蚁金服分布式事务(Distributed Transaction-eXtended,简称DTX)
开源TCC框架(TCC-Ttansaction)
开源TCC框架(ByteTCC)
五、Seata总结
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!