分布式事务(3)-分布式事务处理技术之Seata

Seata官网链接:http://seata.io/zh-cn/docs/dev/mode/at-mode.html

A

seata是开源的分布式事务解决方案,提供了高性能、简单易用的分布式事务服务,

提供了多种事务模式:at模式、tcc模式、saga模式、xa模式

参考:spring cloud seata 简介

主要实现方法是:在service层的方法上加@GlobalTransactional


B

Seata目前提供AT模式(既2PC)、TCC模式和Saga模式。

参考:分布式事务 Seata Saga 模式首秀以及三种模式详解 


C

参考:使用Seata彻底解决Spring Cloud中的分布式事务问题

协议分布式事务处理过程的三个组件

  • Transaction Coordinator (TC): 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚;
  • Transaction Manager (TM): 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议;
  • Resource Manager (RM): 控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚。

分布式事务(3)-分布式事务处理技术之Seata

过程:

  • TM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID;
  • XID 在微服务调用链路的上下文中传播;
  • RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖;
  • TM 向 TC 发起针对 XID 的全局提交或回滚决议;
  • TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。