36

分布式事务解决方案Seata

 3 years ago
source link: http://www.cnblogs.com/jigang/p/12997297.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Seata全称是Simple Extensible Autonomous Transaction Architecture,是由阿里巴巴开源的具有高性能和易用性的分布式事务解决方案。

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

我们的电商系统使用的是微服务架构,由仓储服务、订单服务、账户服务组成,三个服务分别有着自己的本地数据源。开始事务后,每个服务本身能保证数据一致性,但是服务之间将无法保证数据一致性。这也许是很多企业遇到的问题,而Seata就是解决此类问题的。

Seata组织结构

VVFFNbq.png!web

  • 事务协调器(TC):维护全局和分支事务的状态,驱动全局提交或回滚。

  • 事务管理器(TM):定义全局事务的范围:开始全局事务、提交或回滚全局事务。

  • 资源管理器(RM):管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

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

  • TM要求TC开始新的全局事务。TC生成代表全局事务的XID。

  • XID通过微服务的调用链传播。

  • RM将本地事务注册为XID到TC的相应全局事务的分支。

  • TM请求TC提交或回滚XID的相应全局事务。

  • TC驱动XID对应全局事务下的所有分支事务,完成分支提交或回滚。

zAnM3uY.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK