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

seata是什么?

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

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

Seata是什么?

Seata是用来解决上面提到的问题的。
Seata 一个简单可扩展自治事务架构_第3张图片
首先,如何定义一个** Distributed Transaction? (分布式事务)**
我们说,一个分布式事务是由分支事务组成的全局事务,通常,** 分支事务就是本地事务**。
Seata 一个简单可扩展自治事务架构_第4张图片
Seata有三个基本组件:

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

TC(事务协调器):维护全局状态和分支事务,负责提交或者回滚。
TM(事务管理器):定义全局事务的范围:定义一个全局事务,提交或者回滚一个全局事务。
RM(资源管理器):管理每个分支事务的事务资源,与TC协调,注册分支事务并且上报分支事务状态,并且驱动分支事务提交或者回滚。
Seata 一个简单可扩展自治事务架构_第5张图片
Seata管理的分布式事务的一个典型的生命周期:

  1. TM调用TC开始一个新的全局事务,TC生成一个表示全局事务的XID.
  2. XID通过微服务的调用链传播。
  3. RM注册本地事务作为XID对应的全局事务的一个分支到TC上。
  4. TM要求TC提交或者回滚XID对应的全局事务。
  5. TC要求XID下所有对应分支事务,完成后提交或者回滚。
    Seata 一个简单可扩展自治事务架构_第6张图片

你可能感兴趣的:(Seata 一个简单可扩展自治事务架构)