一 概述
TC - 事务协调者
维护全局和分布式事务的状态,驱动全局事务的提交和回滚。
TM - 事务管理器
定义全局事务的范围:开始全局事务,提交或回滚全局事务。
RM - 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,直接同数据库交互。
二 Seata的分布式交易解决方案理解
视图:
TC对事务全局进行控制,TM则是对主要事务(即如下单业务中的生成订单,扣积分,扣库存三个完整的事务进行管理),而每个微服务中的事务则是通过RM进行管理。
Seata对下单事务管理的整个流程:首先TM会通知TC即将开启一个全局事务,这些事务需要保证原子性,当TM(Business)调用某个服务(如Storage),此时Storage服务会注册一个分支事务,会实时通知TC自己的状态(成功还是失败),此时TC就是能知道Storage服务的事务是成功了还是失败了,其他服务同理进行分支事务注册。
未提交的事务可以实现回滚,已经提交的事务会进行反向补偿。