什么是seata
我们来看看它的全称seata(Simple Extensible Autonomous Transaction Architecture)简单可扩展的自治事务体系
什么是TM、RM、TC
1、TM(Transaction Manage) 事务管理器,也可以认为是事务的起点,配置一个全局事务的提交或者回滚。
2、RM(Resources Manage) 资源管理器,可以认为是事务的支点,向TC注册事务分支,并且告诉tc事务状态,并且发起提交或者回滚分支事务。
3、TC(Transaction Coordinetor)事务协调器,用于协调事务,根据状态发起事务的提交或者回滚。
TM、RM、TC是seata的三大组件,整个流程中这三个缩写出现频次很高,所以先理解他们是什么东西很重要。后面还会出现一些新的名词,比较好理解,不做太多解释。
使用seata发起一个分布式事务的流程
1、首先TM 告诉TC 我要开启一个全局事务,由TC生成一个全局事务ID叫XID(XID随微服务调用链传播)。
2、RM收到XID,并将自己的本地事务作为这个XID分支事务注册到TC中。
3、TM告诉TC提交还是回滚同XID相对应的事务。
4、由TC去发起在这个XID下的所有分支事务的完成提交还是回滚的动作。
至此完成一个全局分布式事务。
那么我们在微服务开发过程中对于分布式事务seata需要做些什么呢?
我们只需要做两件事
- 将xid传递给下游
- 将数据源交给seata代理即可