关于 Seata 分布式事务的执行流程的疑问

来源:14-6 分布式事务解决方案 Seata AT 模式解读

hllcve

2021-09-10

官网中的描述:

  1. TM 开启分布式事务(TM 向 TC 注册全局事务记录);
  2. 按业务场景,编排数据库、服务等事务内资源(RM 向 TC 汇报资源准备状态 );
  3. TM 结束分布式事务,事务一阶段结束(TM 通知 TC 提交/回滚分布式事务);
  4. TC 汇总事务信息,决定分布式事务是提交还是回滚;
  5. TC 通知所有 RM 提交/回滚 资源,事务二阶段结束;

视频中的描述:

  1. TM 向 TC 发起注册、提交、回滚全局事务
  2. TM 把代表全局事务的 XID 绑定到分支事务上
  3. RM 向 TC 注册,把分支事务关联到 XID 上
  4. RM 把分支事务的执行结果上报给 TC
  5. TC 发送分支提交或分支回滚命令给 RM

我的疑问:

  1. 官网描述中注册全局事务(即开启分布式事务)和提交、回滚是分开执行的即 步骤1 和 步骤3,中间有个 步骤2;而视频中的描述是注册、提交、回滚都在 步骤1 中,这个应该怎么理解?
  2. 视频中的描述中 步骤2 中会把 XID 关联到 RM 上,然后在 步骤3 中写到 ‘把分支事务关联到 XID 上’,这个不是在 步骤2 中已经做过了吗,是不是应该把这句话理解成 ‘把分支事务关联到全局事务中’?
写回答

1回答

张勤一

2021-09-10

同学你好:

    (1)这里我讲解的是主体的实现过程,具体太细节(也就是我把全部的过程都放在了一起)的可以不用考虑

    (2)对的,第三步是把分支事务关联到全局事务上

1
0

Spring Cloud / Alibaba 微服务架构实战

从架构设计到开发实践,手把手实现

1210 学习 · 674 问题

查看课程