Seata最全详解(图文全面总结)

Seata最全详解(图文全面总结)-mikechen

Seata分布式事务是SpringCloudAlibaba的核心组件,也是构建分布式的基石,下面我就全面来详解Seata@mikechen

Seata定义

Seata是一款分布式事务解决方案,是阿里巴巴开发的,是SpringCloudAlibaba的核心组件,用于解决分布式事务的一致性问题。

 

Seata作用

Seata的主要作用是:解决分布式系统中的分布式事务问题。

在传统的单体应用中,数据库事务能够,保证数据的一致性。

但在分布式系统中,因为数据分布在不同的服务中,跨服务的事务操作会涉及到多个数据库,这就需要一种机制来保证分布式环境下的事务一致性。

所以,需要分布式解决方案,Seata提供了分布式事务的协调和管理,确保各个分布式服务在事务操作中的一致性。

 

Seata原理

Seata事务管理中,有三个重要的组件角色,分别是:TM、RM、TC三大组件。

TC负责:全局事务的协调和管理,TM负责:控制全局事务的生命周期,RM负责:管理分支事务的执行和状态,三者共同保证分布式事务的一致性。

整体架构,如下图所示:

Seata最全详解(图文全面总结)-mikechen

1、TC (Transaction Coordinator) – 事务协调器

  • TC是Seata中的核心组件之一,负责协调、和管理全局事务;
  • TC负责全局事务的创建、提交和回滚,以及对分支事务的状态管理;
  • TC通常部署在Seata的服务器端,与客户端的应用服务进行通信,协调全局事务的执行。

2、TM (Transaction Manager) – 事务管理器

  • TM是Seata中的核心组件之一,负责管理、和控制全局事务的生命周期。
  • TM与TC(事务协调器)协同工作,负责向TC(事务协调器)发起全局事务的开始、提交和回滚请求,并根据TC(事务协调器)的响应进行相应的处理。

3、RM (Resource Manager) – 资源管理器

  • RM是Seata中的核心组件,负责:管理分支事务的执行、和状态。
  • RM负责向TC注册分支事务,并在全局事务的提交、或回滚时执行相应的本地事务操作。
  • RM代表了各个参与者(如:数据库、消息队列……等),负责管理它们的本地事务。

通过TM、RM和TC之间的协调和通信,Seata实现了分布式事务的一致性和可靠性。

 

Seata工作流程

Seata工作流程,如下图所示:

Seata最全详解(图文全面总结)-mikechen

Seata的分布式事务流程大致如下:

  1. 应用服务向TM发起全局事务请求;
  2. TM生成全局事务ID,并向TC发起全局事务创建请求;
  3. TC创建全局事务,并通知各个RM注册分支事务;
  4. 应用服务执行本地事务,并将事务执行情况通知给TM;
  5. 在全局事务提交或回滚时,TM向TC发送相应的请求;
  6. TC接收到请求后,通知各个RM执行相应的操作;
  7. RM执行本地事务的提交或回滚操作;
  8. 当所有分支事务都提交或回滚完成后,全局事务结束。

这个流程涵盖了, Seata 分布式事务的主要步骤,通过全局事务管理器和资源管理器之间的协调,确保了各个分支事务的一致性、和全局事务的原子性。

mikechen睿哥

10年+大厂架构经验,就职于阿里、淘宝、百度等一线互联网大厂,拥有丰富的大型高并发实战经验。

关注「mikechen」公众号,获取更多架构干货!

评论交流
    说说你的看法