其他分享
首页 > 其他分享> > Seata AT模式解析

Seata AT模式解析

作者:互联网

AT 模式下,把每个数据库被当做是一个 Resource,Seata 里称为 DataSource Resource。业务通过 JDBC 标准接口访问数据库资源时,Seata 框架会对所有请求进行拦截,做一些操作。每个本地事务提交时,Seata RM(Resource Manager,资源管理器) 都会向 TC(Transaction Coordinator,事务协调器) 注册一个分支事务。当请求链路调用完成后,发起方通知 TC 提交或回滚分布式事务,进入二阶段调用流程。此时,TC 会根据之前注册的分支事务回调到对应参与者去执行对应资源的第二阶段。TC 是怎么找到分支事务与资源的对应关系呢?每个资源都有一个全局唯一的资源 ID,并且在初始化时用该 ID 向 TC 注册资源。在运行时,每个分支事务的注册都会带上其资源 ID。这样 TC 就能在二阶段调用时正确找到对应的资源。

Seata 中有三大模块,分别是 TM、RM 和 TC。 其中 TM 和 RM 是作为 Seata 的客户端与业务系统集成在一起,TC 作为 Seata 的服务端独立部署。

在 Seata 中,分布式事务的执行流程:

Seata 会有 4 种分布式事务解决方案,分别是 AT 模式、TCC 模式、Saga 模式和 XA 模式,本文主要介绍AT模式。

Seata类图

TC类图

TC在Seata中其实就是Server端,Client端其实属于RM和TM,但是为了看起来完整,把Client端的RpcCient和Listener也放在了这里,类图如下图所示:

CLient listenner监听服务端发过来的消息,从而进行相应的操作。

RM类图

RM相关类图如下图所示:

 

标签:事务,Seata,模式,TM,RM,解析,TC,分布式
来源: https://www.cnblogs.com/xfeiyun/p/16101600.html