文章插图
TCC模式
【TCC的空回滚和业务悬挂】当某分支事务的try阶段阻塞时,可能导致全局事务超时而触发二阶段的cancel操作 。在未执行try操作时先执行了cancel操作,这时cancel不能做回滚,就是空回滚 。
对于已经空回滚的业务,如果以后继续执行try,就永远不可能confirm或cancel , 这就是业务悬挂 。应当阻止执行空回滚后的try操作,避免悬挂 。
文章插图
(4)Saga模式Saga模式是SEATA提供的长事务解决方案 。也分为两个阶段:
- 一阶段:直接提交本地事务
- 二阶段:成功则什么都不做;失败则通过编写补偿业务来回滚
- 事务参与者可以基于事件驱动实现异步调用,吞吐高
- 一阶段直接提交事务,无锁,性能好
- 不用编写TCC中的三个阶段 , 实现简单
- 软状态持续时间不确定,时效性差
- 没有锁,没有事务隔离 , 会有脏写
文章插图
(5)模式对比
文章插图
参考&感谢
https://www.cnblogs.com/chengxy-nds/p/14046856.html
【分布式事务方案汇总及Seata详解】
推荐阅读
- 婚礼会场布置策划方案 婚礼会场该怎么选择
- 聊聊接口重试机制的几种解决方案
- 彻底搞透分布式一致性
- 计划与方案的区别 计划与方案的区别是什么
- 意见和方案的区别在哪 意见和方案的区别
- 工作方案和实施方案的区别在哪 工作方案和实施方案的区别
- 使用Ray轻松进行Python分布式计算
- Go的分布式应用:使用Raft算法
- Java中的代码传递行为:解决类膨胀问题的方案
- 长江珍稀鱼类保护方案