暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式事务·概念篇

Java壹码平川 2021-08-23
131

基础概念

  • CAP

    • C 一致性

    • A 系统的可用性,查询一个数据,能否正常查询出数据

    • P 分区容错,保证网络可用

    常见的分布式解决方案多为:首先保证P,其次保证A,舍弃C的强一致性,取最终一致性


  • BASE(对于AP另外一种解读方式)

    • Basically Available(基本可用)

    •  基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性—-注意,这绝不等价于系统不可用。

    • Soft state(软状态)

      软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时

    •  Eventually consistent(最终一致性)

      最终一致性强调的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一个一致的状态。

  • 2PC

  •     两阶段提交协议,整个事务分为两个阶段
    • 询问/准备阶段(CanCommit)
    • 协调者询问每个事务单元能否提交,并夯住持有事务资源不释放,一直等待事务回应
    • 回应+提交阶段(DoCommit)
    • 每个事务单元回应协调者,所有的事务单元都能正常提交,则提交,反之取消提交,存在某一个事务单元故障,导致协调者一直接受不到通知,等不到天黑,烟火就真的的不完美了
    • 面临的问题:资源阻塞问题,协调者单点故障问题

      当协作者崩溃时,参与者不能做出最后的选择。因此参与者可能在协作者恢复之前保持阻塞


  • 3PC

    • 为了弥补两阶段提交的资源锁定问题的优化方案,降低资源阻塞的概率和时长,引入超时机制
    • 询问/准备阶段(CanCommit),超时没有等到事务单元的回应,超时自动回滚

    • 预提交(PreCommit),预提交一次,记录redolog undolog,回应协调者,此时协调者超时未收到通知能提交,回滚

    • 执行提交(DoCommit) 没有等到协调者的通知,超时自动提交


  • XA

    • Oracle定义的处理事务的标准
  • TCC

    • 分布式事务的另外一种解决模式
    • Try 尝试提交
    • Confirm 确认提交
    • Cancel 取消提交回滚
文章转载自Java壹码平川,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论