分布式事务
文章平均质量分 92
小刘想学架构
为成为一名优秀的架构师而努力
展开
-
分布式事务中TCC模式常见问题(幂等、空回滚、悬挂)解决
前面讨论了分布式事务三种典型的异常类型,它们的解决方案都依赖于一张事务状态控制表。我们来尝试总结一下它们各自的特点。幂等问题:TC重复调用二阶段解决:事务状态控制记录作为控制手段,只有存在INIT记录时才执行,存在CONFIRMED/ROLLBACKED记录时不再执行空回滚问题:TC回滚事务调用二阶段,但一阶段尚未执行解决:事务状态控制记录作为控制手段,无记录时即为空回滚资源悬挂问题:TC回滚事务调用二阶段完成空回滚后,一阶段执行成功。原创 2024-06-11 23:41:10 · 1126 阅读 · 0 评论 -
分布式事务Seata
当某分支事务的try阶段阻塞时,可能导致全局事务超时而触发二阶段的cancel操作。对于已经空回滚的业务,如果以后继续执行try,就永远不可能confirm或cancel,这就是业务悬挂。应当阻止执行空回滚后的try操作,避免悬挂。TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。原创 2024-06-11 22:45:30 · 907 阅读 · 0 评论