分布式事务方案汇总及Seata详解( 三 )

  • Cancel:预留资源释放,可以理解为try的反向操作 。
  • TCC的工作模型图:
    分布式事务方案汇总及Seata详解

    文章插图
    TCC模式
    【TCC的空回滚和业务悬挂】当某分支事务的try阶段阻塞时,可能导致全局事务超时而触发二阶段的cancel操作 。在未执行try操作时先执行了cancel操作,这时cancel不能做回滚,就是空回滚 。
    对于已经空回滚的业务,如果以后继续执行try,就永远不可能confirm或cancel , 这就是业务悬挂 。应当阻止执行空回滚后的try操作,避免悬挂 。
    分布式事务方案汇总及Seata详解

    文章插图
    (4)Saga模式Saga模式是SEATA提供的长事务解决方案 。也分为两个阶段:
    • 一阶段:直接提交本地事务
    • 二阶段:成功则什么都不做;失败则通过编写补偿业务来回滚
    Saga模式优点:
    • 事务参与者可以基于事件驱动实现异步调用,吞吐高
    • 一阶段直接提交事务,无锁,性能好
    • 不用编写TCC中的三个阶段 , 实现简单
    缺点:
    • 软状态持续时间不确定,时效性差
    • 没有锁,没有事务隔离 , 会有脏写

    分布式事务方案汇总及Seata详解

    文章插图
    (5)模式对比
    分布式事务方案汇总及Seata详解

    文章插图
    参考&感谢
    https://www.cnblogs.com/chengxy-nds/p/14046856.html

    【分布式事务方案汇总及Seata详解】


    推荐阅读