分布式事务在分布式系统很常见,但是很多同学不了解有哪些分布式事务框架,下面重点详解4个开源的分布式事务框架。
Seata
Seata是蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。
官网地址:http://seata.io
Seata提供了四种不同的分布式事务解决方案:
1.XA模式
强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。
2.TCC模式
最终一致的分阶段事务模式,有业务侵入。
3.AT模式
最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式。
4.SAGA模式
长事务模式,有业务侵入。
更加详细的分布式事务解决方案,请查看:最全分布式事务解决方案详解
Seata 架构如下图所示:
Seata定义了3个核心组件:
1.TC(Transaction Coordinator)
事务协调器,直接调度事务参与者RM,主要负责维护全局事务和分支事务的状态。
2.TM(Transaction Manager)
事务管理器,它是事务的发起者,比如:具体的微服务。
3.RM(Resource Manager)
资源管理器,其实就是事务的参与者。
以上三个组件相互协作,TC 以 Seata 服务器(Server)形式独立部署,TM 和 RM 则是以 Seata Client 的形式集成在微服务中运行。
整体工作流程如图:
除了分布式事务框架Seata用的比较多,还会有如下的分布式事务框架,下面也做一个简介。
ByteTCC
ByteTCC:美团点评开源的分布式事务框架,基于TCC补偿机制实现,支持高性能和高可用,提供了丰富的API接口和工具支持。
Nacos-AT
阿里巴巴开源的分布式事务框架,基于TCC补偿机制实现,可与Nacos和Spring Cloud等分布式框架无缝集成。
SkyWalking-Tx
SkyWalking-Tx:Apache SkyWalking社区开源的分布式事务框架,支持TCC和Saga等事务模式,提供了完善的监控和追踪功能。
TCC-Transaction
TCC-Transaction:华为开源的分布式事务框架,基于TCC补偿机制实现,支持高性能和高可用,提供了简单易用的API接口和工具支持。
Atomikos
Atomikos:开源的Java事务管理器,支持XA协议,可用于实现分布式事务的控制和管理,提供了简单易用的API接口和工具支持。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》