Paxos

参考:

  1、Paxos made simple

        2、The Part-Time Parliament

        3、Fast Paxos 

   4、微信后台团队公众号

 

 

一、原理:

  三个条件:

                 1、各提议者编号唯一;

                 2、多数投票者有回应时本次提议才有效;

                 3、投票者向当前提议者承诺不再接受编号小于当前提议者的任何提议。

       两个阶段:

                  1、准备阶段,提议者带上自身编号去获取投票者中多数派的回应。

                  2、根据第一阶段获取的信息,设置提议或重复第一阶段。

 

       常见问题:

              如何收敛?某个提议者获得了多数派的支持并设置提议成功。

    如果两个提议者的编号为依次递增,可能会引起死循环问题,如何解决? 使用唯一的提议者编号。

               

二、衍生算法

  Raft

 

三、实现

      

      

四、应用

  zookeeper:配置管理、分布式锁等

  phxsql:解决mysql半同步复制功能(Binlog)无法保证数据一致性的问题、Master-Salve切换

 

 

 

                

posted @ 2017-07-30 21:07  ag1969ag  阅读(145)  评论(0编辑  收藏  举报