Seata 一个简单可扩展自治事务架构

博客介绍了微服务中的分布式事务问题,传统单体应用用本地事务保证数据一致性,微服务拆分后数据源增多。Seata用于解决此问题,它有TC、TM、RM三个基本组件,还阐述了Seata管理的分布式事务典型生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

seata是什么?

一个高性能,易于上手的,用于微服务架构的分布式事务解决方案。

微服务中的分布式事务问题
传统的单体应用,它的业务组件通常有3个模块。它使用一个单体的本地数据源,通常地,使用本地事务保证数据一致性。
单体服务数据模型
在微服务中就会变得不一样了,上面提到的3个模块将拆分成3个不同的数据源。每个单体的服务自然可以使用本地事务保证数据一致性。
但是在整个业务逻辑范围上会出现什么情况呢?
在这里插入图片描述

Seata是什么?

Seata是用来解决上面提到的问题的。
在这里插入图片描述
首先,如何定义一个** Distributed Transaction? (分布式事务)**
我们说,一个分布式事务是由分支事务组成的全局事务,通常,** 分支事务就是本地事务**。
在这里插入图片描述
Seata有三个基本组件:

  1. Transaction Coordinator(TC)
  2. Transaction Manager™
  3. Resource Manager(RM)

TC(事务协调器):维护全局状态和分支事务,负责提交或者回滚。
TM(事务管理器):定义全局事务的范围:定义一个全局事务,提交或者回滚一个全局事务。
RM(资源管理器):管理每个分支事务的事务资源,与TC协调,注册分支事务并且上报分支事务状态,并且驱动分支事务提交或者回滚。
在这里插入图片描述
Seata管理的分布式事务的一个典型的生命周期:

  1. TM调用TC开始一个新的全局事务,TC生成一个表示全局事务的XID.
  2. XID通过微服务的调用链传播。
  3. RM注册本地事务作为XID对应的全局事务的一个分支到TC上。
  4. TM要求TC提交或者回滚XID对应的全局事务。
  5. TC要求XID下所有对应分支事务,完成后提交或者回滚。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值