Seata: Simple Extensible Autonomous Transaction Architecture

Seata:简单可扩展的自主事务架构

本文来自于:https://github.com/seata/seata

Seata有不错的中文文档,不过,其github主页上的简介并没有中文版。翻译下,也为自己做个备忘

目录

一、Seata是什么?

二、微服务中的 分布式事务问题

三、但,在 整个业务逻辑范围内,如何保证 数据一致性

四、Seata怎么做的?

五、Seata的历史

1. 蚂蚁金服(Ant Financial)

2. 阿里巴巴(Alibaba)

3. Seata社区(Seata Community)


一、Seata是什么?

Seata是分布式事务解决方案,它拥有较高性能,且在微服务架构下易于使用

 

二、微服务中的 分布式事务问题

假设我们有一个传统的单体(monolithic)应用,其业务有3个模块组成,这3个模块使用单一一个本地数据源。

很自然的,本地事务(local transaction)保证了数据一致性。

Seata:简单可扩展的自主事务架构

 

在微服务架构下,事情就不一样啦。在微服务架构下,前面提到的3个模块被设计成3个服务,每个服务都建立在自己独有的数据源上(微服务模式:每个服务一个数据库)。对于每个服务本身,数据一致性依然还是由本地事务保证

 

三、但,在 整个业务逻辑范围内,如何保证 数据一致性

Seata:简单可扩展的自主事务架构

 

四、Seata怎么做的?

Seata正是为上述问题而生的解决方案

Seata:简单可扩展的自主事务架构

 

首先,如何定义 分布式事务?

分布式事务(distributed transaction) 是 由一批 分支事务(branch transaction)构成的 全局事务(global transaction),通常,分支事务就是普通的本地事务(local transaction)

Seata:简单可扩展的自主事务架构

 

Seata中有3个基本组件:

事务管理者(TM, transaction manager):定义全局事务的范围:开启全局事务、commit或rollback全局事务

事务协调者(TC, transaction coordinator):维护全局事务和分支事务的状态,驱动 全局事务commit或rollback

资源管理者(RM, resource manager):管理 分支事务所用到的 资源。向TC注册分支事务,向TC汇报分支事务的状态,驱动 分支事务commit或rollback

Seata:简单可扩展的自主事务架构

 

Seata管理的分布式事务的典型生命周期如下:

  1. TM 要求 TC 开启全局事务。TC生成代表着全局事务的 XID
  2. XID 在 微服务的调用链中 被传播
  3. RM 向 TC 进行注册,将 本地事务 注册为 全局事务XID 的分支事务
  4. TM 要求 TC commit或rollback 全局事务XID
  5. TC 驱动 全局事务XID下的每一个分支事务,让每一个分支事务 完成自己的 commit或rollback

Seata:简单可扩展的自主事务架构

 

更多Seata设计原理和细节,请参照Seata wiki page:https://github.com/seata/seata/wiki

 

五、Seata的历史

1. 蚂蚁金服(Ant Financial)

  • XTS:扩展事务服务(Extended Transaction Service)。从2007年开始,蚂蚁金服中间件团队开发了 分布式事务中间件,该中间件在蚂蚁金服被广泛使用,解决了 跨数据库和跨服务 的数据一致性问题
  • DTX:分布式事务扩展(Distributed Transaction Extended)。从2013年开始,XTS更名为DTX 并在 蚂蚁金服云 发布

 

2. 阿里巴巴(Alibaba)

  • TXC:淘宝事务构建器(Taobao Transaction Constructor)。从2014年开始,为了解决 从单体应用架构(monolithic)向微服务应用架构 转变所带来的 分布式事务问题,阿里巴巴中间件团队开始了该项目
  • GTS:全局事务服务(Global Transaction Service)。从2016年开始,TXC更名为GTS,作为阿里云中间件产品发布
  • Fescar:为了后续可以和社区更紧密合作,从2019年开始,基于TXC/GTS我们发布了开源项目Fescar

 

3. Seata社区(Seata Community)

Seata:简单可扩展的自主事务架构(Simple Extensible Autonomous Transaction Architecture)。蚂蚁金服加入了Fescar,这使得Fescar成为 分布式事务 的更中立和开放的社区,Fescar被命名为Seata

 

Enjoy

相关文章:

  • 2021-09-02
  • 2022-01-26
  • 2021-08-28
  • 2021-09-19
  • 2021-12-23
  • 2022-12-23
  • 2022-02-01
猜你喜欢
  • 2021-12-26
  • 2021-06-26
  • 2022-12-23
  • 2021-12-08
  • 2021-07-21
相关资源
相似解决方案