分布式事务中间件 Seata
Last updated
Last updated
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
事务协调者(Transaction Coordinator,TC):维护全局和分支事务的状态,驱动全局事务提交或回滚。
事务管理器(Transaction Manager,TM):定义全局事务的范围,开始全局事务、提交或回滚全局事务。
资源管理器(Resource Manager,RM):管理分支事务处理的资源,与 TC 交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
如上图所示,Seata 中事务生命周期主要分为 Begin(TM)、Registry(RM)、Commit/Rollback(TM & TC)这三部分。
事务管理者(TM)通过 rpc 至事务协调者(TC)创建全局事务(Global Transaction),将 TC 生成的 XID 传递至其 TM 所调用的任意资源管理者(RM)中,RM 通过其接收到的 XID,将其所管理的资源且被该调用锁使用到的资源注册为一个事务分支(Branch Transaction),当该请求的调用链全部结束时 TM 将事务的决议结果(Commit/Rollback)通知 TC,TC 将协调所有 RM 进行事务的二阶段动作。