seata简介
Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。
微服务的分布式事务问题
传统的单片应用程序,它的业务有多个模块组成,使用单个本地数据源。本地事务将保证数据的一致性。
微服务架构已发生变化,每个模块设计为单独的服务,每个服务有自己的数据库。本地事务自然可以保证每个服务中的数据一致性,但没办法保证整体业务数据的一致性。
Seata分布式事务解决方案,分布式事务是由一批事务组成的全局事务,通常分支事务只是本地事务。
Seata术语:
TC(Transaction Coordinator)事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。
TM(Transaction Manager)事务管理器:定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM(Resource Manager)资源管理器:管理分支事务处理的资源、与TC交谈以注册分支事务和报告分支事务的状态,并驱动事务提交或回滚。
Seata管理的分布式事务的典型生命周期:
1,TM向tC申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID。
2,XID在微服务调用链路的上下文中传播。
3,RM向TC注册分支事务,将其纳入XID对应全局事务的管辖。
4,TM向TC发起针对XID的全局提交或回滚决议。
5,TC调度XID下管辖的全局分支事务完成提交或回滚请求。