当前位置: 代码迷 >> 综合 >> zookeeper live(三)之zookeeper讲解
  详细解决方案

zookeeper live(三)之zookeeper讲解

热度:32   发布时间:2023-12-13 01:00:46.0

zookeeper live(三)之zookeeper讲解

  1. 面试中问到:你给我介绍一下paxos算法?

    paxos算法是基于消息传递,来解决多个提案统一值的分布式的一致性的一个协议,具有高容错性。paxos算法里边分几种成员?每种干什么的?最终确定提案值分两个步骤,分别是什么什么?它为什么要设置成过半提交?它的应用非常广泛,在哪用到了什么什么。

  2. 介绍一下两阶段提交?

    两阶段提交是用来干什么的?分哪两个步骤,第一个是什么,第二个是什么?有哪些优缺点?典型的应用场景是什么?

回答以上两个问题思路一定要清晰。

  1. zookeeper讲解内容:zab协议,zab协议里的故障恢复和消息广播(leader的选举和数据的同步的一致性)

  2. zookeeper的组成

    1. leader:接受所有事务请求

    2. learner:历史事务集合

    3. observer:不参与过半选举,提高读性能

  3. ZAB协议:事务(zxid)

    1. zookeeper底层的是zab协议

    2. 在zab协议中,每个事务都有一个唯一性的编号zxid,zxid由以下两部分组成

      1. 高32位是epoch:选举周期

      2. 低32位是递增计数器:随事务的到来递增

    3. zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议,Zab协议有两种模式,它们分别是恢复模式和广播模式。当服务器启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。

  相关解决方案