zookeeper live(三)之zookeeper讲解
-
面试中问到:你给我介绍一下paxos算法?
paxos算法是基于消息传递,来解决多个提案统一值的分布式的一致性的一个协议,具有高容错性。paxos算法里边分几种成员?每种干什么的?最终确定提案值分两个步骤,分别是什么什么?它为什么要设置成过半提交?它的应用非常广泛,在哪用到了什么什么。
-
介绍一下两阶段提交?
两阶段提交是用来干什么的?分哪两个步骤,第一个是什么,第二个是什么?有哪些优缺点?典型的应用场景是什么?
回答以上两个问题思路一定要清晰。
-
zookeeper讲解内容:zab协议,zab协议里的故障恢复和消息广播(leader的选举和数据的同步的一致性)
-
zookeeper的组成
-
leader:接受所有事务请求
-
learner:历史事务集合
-
observer:不参与过半选举,提高读性能
-
-
ZAB协议:事务(zxid)
-
zookeeper底层的是zab协议
-
在zab协议中,每个事务都有一个唯一性的编号zxid,zxid由以下两部分组成
-
高32位是epoch:选举周期
-
低32位是递增计数器:随事务的到来递增
-
-
zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议,Zab协议有两种模式,它们分别是恢复模式和广播模式。当服务器启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。
-