Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
Seata 中有三⼤模块,分别是 TM、RM 和 TC。其中 TM 和 RM 是作为 Seata 的客户端与业务系统集成在⼀起,TC 作为 Seata 的服务端独⽴部署。
TC (Transaction Coordinator) - 事务协调者。维护全局和分⽀事务的状态,驱动全局事务提交或回滚。
TM (Transaction Manager) - 事务管理器。定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM (Resource Manager) - 资源管理器。管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
Seata服务交互
Seata事务执行流程
TM 开启分布式事务,TM会 向 TC 注册全局事务记录;
操作具体业务模块的数据库操作之前, RM 会向 TC 注册分⽀事务;
当业务操作完事后,TM会通知 TC 提交/回滚分布式事务;
TC 汇总事务信息,决定分布式事务是提交还是回滚;
TC 通知所有 RM 提交/回滚 资源,事务⼆阶段结束。