seata-spring的maven坐标:
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring</artifactId>
<version>1.6.1</version>
</dependency>
@GlobalTransactional注解的位置:
io.seata.spring.annotation.GlobalTransactional
查看GlobalTransactional源码,注释显示:
/**
* The interface Global transactional.
*
* @author slievrly
* @see io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object) io.seata.spring
* .annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)// the scanner for TM, GlobalLock, and
* TCC mode
* @see io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction(MethodInvocation,
* AspectTransactional) io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction
* (MethodInvocation,
* GlobalTransactional)// TM: the interceptor of TM
* @see io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation) io.seata.spring
* .annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation)// RM: the interceptor of
* GlobalLockLogic and AT/XA mode
* @see io.seata.spring.tcc.TccActionInterceptor#invoke(MethodInvocation) io.seata.spring.tcc
* .TccActionInterceptor#invoke(MethodInvocation)// RM: the interceptor of TCC mode
*/
阅读注释,
io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)
wrapIfNecessary(Object, String, Object)方法,是 TM、GlobalLock和 TCC 模式的扫描仪。
io.seata.spring.annotation.GlobalTransactionalInterceptor#handleGlobalTransaction(MethodInvocation,AspectTransactional)
handleGlobalTransaction(MethodInvocation,GlobalTransactional)这个方法,是TM侧的TM的拦截器。
io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation)
SeataAutoDataSourceProxyAdvice#invoke(MethodInvocation),是RM侧的GlobalLockLogic和AT/XA模式的拦截器。
io.seata.spring.tcc.TccActionInterceptor#invoke(MethodInvocation)
TccActionInterceptor#invoke(MethodInvocation),是RM侧的TCC模式的拦截器。
TM是什么?RM是什么?看看seata术语表。
TM是事务管理器,定义全局事务的范围:开始全局事务、提交或回滚全局事务。
RM是资源管理器,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
简称 | 中文名称 | 功能 |
---|---|---|
TC (Transaction Coordinator) | 事务协调者 | 维护全局和分支事务的状态,驱动全局事务提交或回滚。 |
TM (Transaction Manager) | 事务管理器 | 定义全局事务的范围:开始全局事务、提交或回滚全局事务。 |
RM (Resource Manager) | 资源管理器 | 管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。 |
GlobalTransactionScanner#wrapIfNecessary,查看扫描仪的方法。
wrapIfNecessary(Object, String, Object)方法位置:
io.seata.spring.annotation.GlobalTransactionScanner#wrapIfNecessary(Object, String, Object)
查看源码,注释显示:
// todo