Alibaba Spring Cloud 三 Seata 的三大核心组件:TC,TM,RM

Seata 的架构由三大核心组件构成:Transaction Coordinator(TC)Transaction Manager(TM)Resource Manager(RM)。它们协同工作,用于管理分布式事务的生命周期,确保全局数据一致性。以下是对这三个组件的详细解析及其作用:


1. Seata 的三大核心组件

1.1 Transaction Coordinator(TC)事务协调者

  • 作用
    • 负责管理全局事务的生命周期。
    • 记录全局事务状态和分支事务的状态。
    • 协调各分支事务的提交或回滚操作。
  • 位置
    • TC 通常部署为一个独立的中心化服务,例如 Seata Server。
  • 工作原理
    1. 全局事务创建
      • TM 向 TC 注册全局事务,TC 分配一个全局事务 ID(XID)。
    2. 分支事务注册
      • 每个分支事务通过 RM 向 TC 注册。
    3. 协调提交或回滚
      • 根据全局事务的状态,通知 RM 提交或回滚分支事务。

1.2 Transaction Manager(TM)事务管理器

  • 作用
    • 发起并管理全局事务的边界(开始、提交或回滚)。
  • 位置
    • TM 嵌入到业务服务中,是分布式事务的入口。
  • 主要功能
    1. 开启全局事务
      • TM 向 TC 注册全局事务,获取全局事务 ID。
    2. 标记事务边界
      • 使用 @GlobalTransactional 注解管理全局事务的开始和结束。
    3. 提交或回滚事务
      • 根据业务逻辑或异常,通知 TC 提交或回滚全局事务。
代码示例
@Service
public class OrderService {
   

    @Autowired
    private InventoryService inventoryService;

    @Autowired
    private PaymentService paymentService;

    @GlobalTransa
在分布式事务中,TCRMTM分别表示事务协调者、资源管理器和事务管理器。 事务协调者(Transaction Coordinator,TC)是分布式事务中的核心组件,它负责协调分布式事务的执行,保证所有涉及到的资源在事务执行期间都处于一致的状态。它的主要工作包括:发起分布式事务、协调参与者的事务操作、监控事务执行状态、提交或回滚分布式事务等。 资源管理器(Resource Manager,RM)是指分布式事务中的参与者,它负责管理一个或多个资源(如数据库、消息队列等)的访问和操作,并向协调者(TC)报告资源的状态。当一个分布式事务涉及多个资源时,每个资源管理器都会向事务协调者报告自己的事务状态,协调者根据这些状态来判断整个分布式事务是否提交或回滚。 事务管理器(Transaction Manager,TM)则是分布式事务的执行环境,它负责管理应用程序和分布式事务协调者之间的交互。应用程序向事务管理器发起事务请求,事务管理器会创建一个事务上下文,并将上下文信息传递给事务协调者。在事务执行期间,事务管理器会与事务协调者和资源管理器进行交互,以保证事务的一致性和完整性。当事务执行完成后,事务管理器会向事务协调者报告事务的状态。 总之,TCRMTM在分布式事务中各有不同的职责和作用,协同工作来保证整个分布式事务的正确执行。TC负责协调分布式事务的执行,RM负责管理资源的访问和操作,TM则是事务执行的环境和管理者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值