以下是订单和库存的实例代码。在通达信交易接口,事务开始时,订单服务处可以使用Globaltransactional。当添加异常代码使订单无法添加时,库存减少服务也会根据undolog进行回滚。回滚后,undolog记录将被释放和删除。
跟踪AT模式的整体大纲流程如下:
如果springboot项目发现Seata对应依赖
springboot自动装配文件spring.factories,内容如下:
看到几个bean自动组装,发现和你想看的bean有很大关系。
我们需要研究AT模式。AT模式采用Globaltransactional全局通达信交易接口,事务注释,找到以下类似的bean。翻译是全局事务扫描仪,说明是我们想要的。
我们在网上下载了seata源代码,搜索了我们要检查的类别,看到AbstractAutoProxyCreator已经被继承了。说明它使用了AOP代理,那么WrapIfNecessary必然会实现。逻辑如下:
点击Globaltransactionalinterceptor查看全局事务拦截器,查看invoke方法中的全局事务如下:
从全局事务的执行方式来看,主要有执行当前事务的核心逻辑,以及获取事务信息的方法。
执行当前事务的核心逻辑,如下步骤
以上我们分析了整个大纲流程是如何进行的,对于undolog如何生成等详细信息,需要进入相应的细节进行仔细分析。
文章为作者独立观点,不代表股票配资公司观点