Seata 的TCC 模式问题分析(待续)

5 篇文章 0 订阅
2 篇文章 0 订阅

Seata 后续:
1.TCC模式,t-try prepare c-confirm c-cancel,
2.除了TM 上面的@GloadTansational,注解外,各个的RM的接口上面要有@TwoPhaseBusinessAction(name=,commitMethod=,
   rollbackMethod=)
3.如果t,出现问题,则回滚执行rollback方法,如果c,出现问题了,就不回滚
4.T-papare-尝试去做,不真正的操作业务sql,或者业务字段,第一阶段的try,只是对目标字段的尝试,不会真正的操作
  目标字段。
  C-commit一定是要成功的,代码能走到第二阶段的提交,那么第一阶段的try是成功的,必然第二阶段的commit会成功的
  。死循环去调用,是TC去调用的
  C-rollback-一旦try逻辑失败,就会调用rollback吃,需要回滚的就是第一阶段try预留的值。
5.tcc模式常见的问题,
  1.空回滚问题,调用第一阶段try的时候,由于网路拥堵导致调用超时,调用失败,TM接收不到rm的第一阶段的回滚,
  就认为调用失败了,调用第二阶段的rollback,rm的第一个阶段的try并没有执行,空回滚了
  2.悬挂问题,就是在空回滚问题的基础上,rollback执行完了,执行业务的try又活了起来,不会在执行rollback第二次了
  3.幂等性问题,在commit的时候,成功了,但是因为网络异常,tc认为失败了,频繁的执行commit。
6.效率的问题,AT.模式有一个全局的锁,性能不高。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

張義帥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值