如下为订单和库存的实例代码,在事务开启处即订单服务处使用GlobalTransactional即可。当添加了异常代码使订单无法加一,这时减库存服务也会回滚,根据的就是undolog。回滚完undolog记录会被释放删除。
AT模式整体大纲流程跟踪如下:
如果是springboot项目找到Seata对应依赖
springboot的自动装配文件spring.factories,内容如下:
里面看到自动装配了几个bean,找到与自己想看的bean关系大的
我们要研究AT模式,AT模式使用了GlobalTransactional全局事务注解,找到了如下相似的bean,翻译就是全局事务扫描器,说明正是我们想要的。
在网上我们下载seata源码,在搜索我们要查的类,看到继承了AbstractAutoProxyCreator。说明它使用了AOP代理,那么必然会实现wrapIfNecessary。逻辑如下:
点击到全局事务拦截器GlobalTransactionalInterceptor里看看,拦截器里看invoke方法中执行了全局事务如下:
到执行全局事务方法里看,主要有执行当前事务的核心逻辑、获取事务信息方法。
执行当前事务的核心逻辑,如下步骤
文章来源:https://www.toymoban.com/news/detail-489193.html
以上我们分析了整体的大纲流程是如何走的,对于详细的比如undolog如何生成则需要进入相应细节仔细分析。文章来源地址https://www.toymoban.com/news/detail-489193.html
到了这里,关于轻松掌握Seata源码分析之AT模式整体大纲流程跟踪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!