一:概述
Seata是阿里开源的一个分布式事务解决方案,主要用的是基于二阶段提交思想的AT模式,通过注解实现非业务侵入。在看Seata源码前,首先要做的是理解它的原理。毕竟代码是基于原理具象化,而原理是代码的抽象化!
二:原理-二阶段提交
二阶段提交有三个角色:
1、TC(Transaction Coordinator),事务协调者,在源码中Seata Server充当事务协调者身份,维护全局锁状态,协调全局事务的提交与回滚。
2、TM(Transaction Manager),事务管理者,业务代码中使用了全局事务注解的服务属于事务管理者,控制全局事务的范围,执行全局事务的提交与回滚。
3、RM(Resource Manager),资源管理者,业务代码中被远程调用的部分,负责执行本地事务,和提交与回滚本地事务。