大致流程就是首先选举出一个Leader,也就是Proposer用来发起提案,然后发送给所有的Acceptor来进行投票,当超过一半投通过票的时候,该提案也就通过了,那么这个时候Proposer会将该提案进行同步所有机器进行学习
也就是说Paxos是基于议会制,以少数服从多数的核心思想来保证一致性的
Raft
该算法不做过多讲解,想要了解,请查看http://thesecretlivesofdata.com/raft/网址ZAB协议
Raft算法是一个分布式共识算法,有三个角色
1.Leader
2.follower
如果follower接收不到leader的心跳时,会变为candidate(这里会有150s~300s的等待时间),发起投票是否成为新的leader
3.candidate(候选人)
核心思想:少数服从多数!
zookeeper是基于该协议(zookeeper原子广播协议)实现的 。这里只做简单介绍,该协议比较重要,后面会和zookeeper相关文章结合单独进行讲解!
该协议有两种模式:
1.崩溃恢复
2.消息广播
它和Paxos的区别联系在于:
1.都存在类似于Leader角色,负责协调多个Follower进程的运行
2.Leader进程都会等待超过半数的Follower做出正确反馈后,才会将一个提案进行提交
3.zab协议中,每个proposal都包含一个epoch值,用了代表当前Leader周期;Paxos中也存在同样的标识,名字为Ballot
4.zab协议主要用于构建一个高可用的分布式数据主备系统
5.Paxos算法主要用于构建一个分布式的一致性状态机系统
推荐阅读
- 五分钟9步搞定nginx正向代理配置
- 分布式数据之缓存技术,今天就一起来揭开其神秘面纱
- 电脑蓝黑屏只会重启?3种方法教你轻松搞定,不花一分钱
- 据说让你抓狂的Nginx性能调优,我却这么轻松就搞定了
- MySQL还能实现分布式锁?
- 十分钟超有效瘦身瑜伽怎么做
- 「分布式计算」什么是严格一致性和最终一致性?
- 烂大街的Nginx+Redis分布式锁+MQ+MDB架构设计
- 「分布式架构」“一切都是分布式”说最终一致性
- 图解Raft:应该是最容易理解的分布式一致性算法