1、多数派
2、两阶段Accept
第一阶段:Propose阶段。Proposers向Acceptors发出Propose请求, Acceptors针对收到的Propose请求进行Promise承诺
第二阶段:Accept阶段。收到多数派Acceptors承诺的Proposer,向 Acceptors发出Accept请求,Acceptors针对收到的Accept请求进行接收 处理
第三阶段(可优化):Commit阶段。发出Accept请求的Proposer,在收 到多数派Acceptors的接收之后,标志着本次Accept成功。向所有 Acceptors追加Commit消息
--------------------------------
经典Paxos
特点:一次实例需要两阶段消息达成(一阶段抢leader、二阶段选定值);
消息数:2f+1个节点一次实例需要(2f+1) *2*2+2次消息通讯
缺点:With multiple concurrent proposers, conflicts and restarts are likely (higher load → more conflicts),性能低、活锁可能
Paxos协议族介绍

Paxos算法的变种不是非此即彼的关系,在不冲突的情况下,可以组合使用
Multi-Paxos
特点:一个Leader执行多次实例;(先经典,然后租约维持)
消息数:2f+1个节点一次实例需要(2f+1) *2+2次消息通讯

Raft
Paxos的一种简化:有主、日志单向复制
通过投票选取主节点leader(任期、心跳,超半数、日志长度)
集群以Leader的日志为准,复制到其他节点,其他节点无条件跟随
通过日志连续无空洞确保集群日志的一致性
超半数的节点接收到的日志可提交应用
已提交的日志不会丢失
在2N+1个节点集群中,最多容忍N个节点失效
协议对比
