一致性终极解决方案Paxos

相关名词:提案者(Proposers)、决策者(Acceptors)和学习者(或者说书记Learners)
基本说明:提案者可以提相应的法案给各个决策者,得到多数决策者的法案会被记录为法律,学习者会记录在案而生效

一致性三个基本条件

        a.法案只有在被Proposer提出后才能批准
        b.每次只能批准一个法案
        c.只有决议确定被批准后Leaners才能获取该法案并进行记录

Paox算法流程可以分为三段式,6个步骤:

第一阶段--准备阶段

 (这里,为了方便起见,一般会设置Leader节点,负责向各个提案者分配法案编号)
    1.Proposer从Leader那儿获得一个编号,然后向大多数Acceptors发送法案
    2.Acceptor接受到相应的法案及其编号N,如果发现接受过类似法案其编号为M,如果M<N,则表示法案通过,并向相应发送N的Proposer通知其接受过M的法案,并表示不再接受编号小于N的法案;如果M>N,则Acceptor直接拒接该法案

第二阶段--正式提交阶段

     3.Proposer们如果收到Acceptor的允许,则会check是否收到相应的一系列M值即Acceptor们是否同意过之前类似的法案,如果有,则从中选择编号最大的M,再向各个Acceptor发送编号N+相应M的法案内容;如果没有收到任何M值,则继续向其它Acceptor提议N+自己法案内容。(这里要特别注意,如果收到之前的M,需要将相应N中的内容修改为M的内容,这样可以保持法案一致性)
     4.如果Proposer没有收到大多数Acceptor的允许,是不会停止的,一直重复3

第三阶段--法案生效

     5.当Proposer发现收到大多数Acceptor的允许,则通过Leader将法案变成法律一部分

     6.由一部分Leaner记录该法案成为法律并传播

附注:网上更有大神之作,用三国的例子生动描述了该算法。算法基本讲解+实例描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胖5566

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值