亿级流量架构之分布式事务思路及方法( 六 )


关于预留资源要多说两句 , 资源都是有限的 , 因此预留资源都是有时效的 , 如果当预留资源迟迟得不到Confirm——我们将这种情况称为timeout——参与方会自行将其Cancel 。也就是说参与方对于资源具有自我管理能力 , 这样可以避免因发起方的问题导致资源被长期占用 。
TCC增加了业务检查和撤销事务的功能 。同时 , TCC将2PC数据库层面的动作提升到了服务层面 , 不同的是TCC的所有动作都是一个本地事务 , 每个本地事务都在动作完成后commit到数据库:

  • Try相当于2PC的Commit request phase , 外加了业务检查逻辑
  • Confirm相当于2PC的Commit phase的commit动作
  • Cancel相当于2PC的Commit phase的rollback动作
流程步骤:
  1. 发起方 发送Try到所有 参与方
  2. 每个 参与方 执行Try , 预留资源
  3. 发起方 收到所有 参与方 的Try结果
  4. 发起方 发送Confirm/Cancel到所有 参与房
  5. 每个 参与方 执行Confirm/Cancel
  6. 发起方 收到所有 参与方 的Confirm/Cancel结果
流程和两阶段提交非常类似 。
本文作者:等不到的口琴
本文链接:https://www.cnblogs.com/Courage129/p/14433462.html

【亿级流量架构之分布式事务思路及方法】


推荐阅读