zoukankan      html  css  js  c++  java
  • 分布式事务

    2pc(Two phase commitment protocol)

    一阶段:准备阶段,预留资源

    二阶段:

    所有资源准备成功 -》提交

    出现准备失败 -》 回滚    

    tcc(try-confirm-cancel)  两阶段提交

    三个接口均由编码实现(业务中),事务管理器统一调度,try成功confirm要求一定成功。

    try    预留资源(冻结资金),冻结资金是否小于余额。

    confirm  所有资源准备成功 -》提交 (扣除冻结资金)

    cancel  出现准备失败 -》 回滚(释放冻结资金)

    - 隔离性    事务间的隔离性。记录中间表,绑定事务id。业务记录流水

    - 空回滚    允许空回滚。(网络波动,try超时,cancel回滚)

    - 防悬挂    try拥堵(cancel后try才执行),防止空回滚后的try操作。允许空回滚,但要拒绝空回滚后的try操作(记录流水标记已回滚,try时检查)。

    - 幂等  tcc三个操作的幂等性

    tcc两阶段提交与saga、seta比较

    - tcc两阶段提交适用于金融场景,最终一致。缺点占用资源,系统需要开发tcc三个接口。

    - seta无法保证事务隔离性,可能会有脏数据无法回滚。undolog回滚补偿,不占资源。设计遵循客户少钱机构多钱的原则,最终机构补偿。

  • 相关阅读:
    泛型
    多播委托
    匿名方法
    委托
    正则表达式
    压缩和解压,文件读取练习
    Vue样式绑定
    Vue跑马灯
    Vue中的v-for遍历循环
    Vue框架
  • 原文地址:https://www.cnblogs.com/chenfx/p/15222930.html
Copyright © 2011-2022 走看看