在Seata的事务管理中有三个重要的角色:
-
TC(Transaction Coordinator) -事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。
-
TM (Transaction Manager) -事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。
-
RM (Resource Manager) -资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
Seata的工作架构如图所示:
Seata的AT模式的执行流程如图所示:
阶段一 RM 的工作:
- 注册分支事务
- 记录undo-log(数据快照)
- 执行业务sql并提交
- 报告事务状态
阶段二 提交时RM的工作:
- 删除undo-log即可
阶段二 回滚时RM的工作:
- 根据undo-log恢复数据到更新前