角色说明
- TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
- TM (Transaction Manager) - 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
- RM (Resource Manager) - 资源管理器
管理分支事务处理的资源,向TC注册分支事务、报告分支事务的状态,并驱动分支事务提交或回滚。
TC 为单独部署的 Seata Server 服务端,TM 和 RM 为嵌入到应用中的 Client 客户端。
设计思路
AT模式的核心是对业务无侵入,是一种改进后的两阶段提交
第一阶段
业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。核心在于对业务sql进行解析,转换成undolog,并同时入库,这是怎么做的呢?先抛出一个概念DataSourceProxy代理数据源,通过名字大家大概也能基本猜到是什么个操作,后面做具体分析
参考官方文档: Seata A