美文网首页
分布式事务实现-TCC模式

分布式事务实现-TCC模式

作者: 文刀雨 | 来源:发表于2021-03-18 00:09 被阅读0次

    事务管理的过程

    • do
    • commit/rollback

    JTA事务管理的过程

    • do
    • prepare/rollback
    • commit/rollback

    TCC模式的事务管理

    • try
    • commit(confirm) /cancel

    TCC模式实现思路

    • 每个需要实现事务的接口,都需要3个接口,分别是: tryXX():业务检查,预留资源
      confirmXX(): 执行业务,使用资源
      cancelXX():回滚业务,释放资源

    TCC模式协调器的功能

    • 接管事务管理,类似JTA的独立事务管理器(非两阶段提交)
    • 保存每个资源上的事务记录:跟踪状态,检查超时
    • 保证每个资源上的事务性
    • 处理各种错误:超时、重试、网络异常、服务不可用

    TCC 模式实现分布式事务

    • 借鉴XA的统一资源管理器,又不是两阶段提交
    • 不同资源之间没有锁,事务过程数据没有锁、没有隔离
    • 出错时可能多次调用Confirm/cancel 方法、以及顺序无法保证
    • confirm /cancel方法需要满足幂等性,即重复调用时结果一致

    基于TCC模式的开发

    • 没有统一的规范,也没有广泛使用框架
    • 协调器的开发比较复杂:需要保证各种出错情况下的最终一致性
    • 协调器监控事务:事务及其参数、返回值保存在数据库中
    • TCC模式的服务组件的服用性

    基于TCC模式开发的注意事项

    • 合理设计try/confirm/cancel方法的功能
    • 保证confirm/cancel方法的幂等性
    • 设计合理的服务间调用:try方法可以调用其他服务


      TCC模式的框架.png

    微服务系统的分布式事务实现

    • 事务同步
    • 重试和幂等性
    • try-Confirm /Cancel
    • 根据微服务系统的架构具体情况具体分析

    相关文章

      网友评论

          本文标题:分布式事务实现-TCC模式

          本文链接:https://www.haomeiwen.com/subject/biwuuktx.html