Seata的AT模式的执行流程

在Seata的事务管理中有三个重要的角色:

  • TC (Transaction Coordinator) -事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。
  • TM (Transaction Manager) -事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。
  • RM (Resource Manager) -资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

AT模式

AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。

Seata的AT模型

基本流程图:

画板

阶段一RM的工作:

1.先会注册一个分支事务到事务协调者TC中

2.记录一个SQL更新前的快照和一个更新后的快照到undo_log日志表中

3.执行SQL并提交数据库事务

4.报告事务状态

阶段二RM的工作:

1.如果此时所有微服务都执行完,并且没有出现异常情况,事务协调者TC通知RM删除undo-log记录。

2.如果此时中途有微服务出现异常情况,则TC会通知RM根据undo-log记录的对应快照恢复数据到更新前。

posted @ 2024-10-13 22:51  YQiang  阅读(27)  评论(0编辑  收藏  举报