Seata
一个分布式事务的解决方案具有高性能和易用性的微服务架构。
微服务中的分布式事务问题
让我们想象一下传统的单片应用程序。它的业务由3个模块组成。他们使用单个本地数据源。
自然,本地事务将保证数据的一致性。
微服务架构已经发生了变化。上面提到的3个模块被设计为在3个不同数据源之上的3个服务(模式:每个服务的数据库)。本地事务自然可以保证每个服务中的数据一致性。
但是整个业务逻辑范围如何?
Seata怎样做的
Seata只是上述问题的解决方案。
首先,如何定义分布式事务?
我们说,分布式事务是由一批分支事务组成的全局**事务,通常分支事务只是本地事务**。
Seata有3个基本组成部分:
- 事务协调器(TC):维护全局事务和分支事务的状态,驱动全局提交或回滚。
- 事务管理器TM:定义全局事务的范围:开始全局事务,提交或回滚全局事务。
- 资源管理器(RM):管理分支事务正在处理的资源,与TC进行对话以注册分支事务并报告分支事务的状态,并驱动分支事务的提交或回滚。
Seata管理的分布式事务的典型生命周期:
- TM要求TC开始一项新的全球交易。TC生成代表全局事务的XID。
- XID通过微服务的调用链传播。
- RM将本地事务注册为XID到TC的相应全局事务的分支。
- TM要求TC提交或回退XID的相应全局事务。
- TC驱动XID对应的全局事务下的所有分支事务以完成分支提交或回滚。
有关原理和设计的更多详细信息,请转到Seata Wiki页面。
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/09/09/framework/seata/seata基础/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!





