开发者社区 > 云原生 > 中间件 > 正文

seata的API回滚全局事务,role应该是Launcher,为什么会是Participant呢?

用seata的API回滚全局事务的时候,发现全局事务还是提交了。然后debug了一下代码,发现程序进入了截图中红框的判断,并且判断条件为true。 lQLPJxa0JFtGoPPNAhzNA4-wyZWrbD3YI-8DKDYDtoDsAA_911_540.png 所以在下面就直接return了。我的服务是全局事务的发起者,role应该是Launcher,为什么会是Participant呢?

展开
收起
fuxixi 2022-09-26 16:15:29 489 0
1 条回答
写回答
取消 提交回答
  • globaltransation不是一个实例导致你获取当前的会构建一个参与者的新实例,这个globaltransation要保存在tm侧的线程上下文里,建议你放到环绕切面里,这样就是创建出来直接使用就行了,不需要放到threadlocal里。

    2022-09-26 17:19:29
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载