十分钟搞定分布式一致性算法( 四 )


大致流程就是首先选举出一个Leader,也就是Proposer用来发起提案,然后发送给所有的Acceptor来进行投票,当超过一半投通过票的时候,该提案也就通过了,那么这个时候Proposer会将该提案进行同步所有机器进行学习
也就是说Paxos是基于议会制,以少数服从多数的核心思想来保证一致性的
Raft

该算法不做过多讲解,想要了解,请查看http://thesecretlivesofdata.com/raft/网址
Raft算法是一个分布式共识算法,有三个角色
1.Leader
2.follower
如果follower接收不到leader的心跳时,会变为candidate(这里会有150s~300s的等待时间),发起投票是否成为新的leader
3.candidate(候选人)
核心思想:少数服从多数!
ZAB协议
zookeeper是基于该协议(zookeeper原子广播协议)实现的 。这里只做简单介绍,该协议比较重要,后面会和zookeeper相关文章结合单独进行讲解!
该协议有两种模式:
1.崩溃恢复
2.消息广播
它和Paxos的区别联系在于:
1.都存在类似于Leader角色,负责协调多个Follower进程的运行
2.Leader进程都会等待超过半数的Follower做出正确反馈后,才会将一个提案进行提交
3.zab协议中,每个proposal都包含一个epoch值,用了代表当前Leader周期;Paxos中也存在同样的标识,名字为Ballot
4.zab协议主要用于构建一个高可用的分布式数据主备系统
5.Paxos算法主要用于构建一个分布式的一致性状态机系统




推荐阅读