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

如何理解commit分布式事务的时候,还有分支事务在调用呢?

如何理解commit分布式事务的时候,还有分支事务在调用呢?seata中A服务方法添加了全局事务注解, B服务方法里面也加了全局事务注解。 A服务调用B服务方法是这样调用出现的吗? lQLPJxaSNKiD_DbNARvNAuaw6ei6HzKj8SUC8JwWrIBuAA_742_283.png

展开
收起
哈喽!小陈 2022-08-15 14:57:31 805 0
1 条回答
写回答
取消 提交回答
  • 假设 A调B,B压力太大,A掉Btimeout,有重试,A再调了一次B,此时B有2个相同的请求,A重试B的请求完成提交到seata-server,此时B被阻塞的那个请求(B是多个节点的高可用部署多provider)进行了处理。b1 线程池被打满,请求阻塞,b2比较畅通,consumer掉provider b1阻塞了,timeout,重试至b2,成功注册分支并相应给A,Acommit->seata-server,seata-server 释放锁,修改事务状态 在seata-server释放锁的时候,b1的那个请求进入处理,注册分支到tc,就额外多了一个这样的分支。如果你的b服务做了幂等,那么就不会出现这种情况。此答案整理自钉钉群“3群-Seata 开源讨论群”

    2022-08-15 15:34:38
    赞同 展开评论 打赏
问答标签:
问答地址:

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

相关电子书

更多
基于社区的分布式 风险感知模型 立即下载
如何利用Redisson分布式化传统Web项目 立即下载
FLASH:大规模分布式图计算引擎及应用 立即下载

相关实验场景

更多