1 observer与follower的区别?
observer不能参与投票.
2 follower的四个功能是什么?它的工作流程是什么?
1. 向leader发请求消息(ping, request, ack,reveal)
2. 接收leader消息并处理
3 .接收Client的请求,如果为写请求,发送给Leader进行投票;
4 .返回Client结果。
3 leader的三个功能是什么?它的工作流程是什么?
1 .恢复数据
2 .维持与follower的心跳,接收follower请求并判断follower的请求消息类型
3. 处理消息
4 广播模式的工作流程是什么?
选完Leader以后,zk就进入状态同步过程。
1. Leader等待server连接;
2. Follower连接leader,将最大的zxid发送给leader;
3. Leader根据follower的zxid确定同步点;
4. 完成同步后通知follower 已经成为uptodate状态;
5. Follower收到uptodate消息后,又可以重新接受client的请求进行服务了。
5 什么是zookeeper?zookeeper的设计目标?zookeeper的几个角色?
1 分布式一致性协调服务问题的解决方案
2 设计目标:
简单的数据模型:就是文件夹的树形结构
可以构建集群:
顺序访问:客户端提出了一个事务请求,会获得一个唯一的id编号,用于操作的先后顺序; —>顺序一致辞 最终一致辞性
高性能:这里指的是读取数据
3 leader、follower、observer
6 恢复模式的流程的核心就是对leader的选举,选举的算法有两种,分别是哪两种?
basic paxos和 fast paxos
7 Zookeeper的核心原子广播的实现机制为Zab协议,Zab协议有两种模式,它们是什么?
1. 恢复模式(选主)
2. 广播模式(同步)
8 Zookeeper 队列管理?
特点: 等到队列成员聚齐之后的才统一按序执行
它其实是在FIFO队列的基础上作了一个增强。通常可以在 /queue 这个znode下预先建立一个/queue/num 节点,并且赋值为n(或者直接给/queue赋值n),表示队列大小,之后每次有队列成员加入后,就判断下是否已经到达队列大小,决定是否可以开始执行 了。这种用法的典型场景是,分布式环境中,一个大任务Task A,需要在很多子任务完成(或条件就绪)情况下才能进行。这个时候,凡是其中一个子任务完成(就绪),那么就去 /taskList 下建立自己的临时时序节点(CreateMode.EPHEMERAL_SEQUENTIAL),当 /taskList 发现自己下面的子节点满足指定个数,就可以进行下一步按序进行处理了。
9 ZooKeeper在大数据中的应用场景:
发布订阅,ZooKeeper HA应用(主备切换),master选举, zookeeper在hbase中应用
10 zab协议相关知识: zab 的三种状态?zab宏观上的三个阶段?zab的微观的四个阶段?zab的节点状态讲解?
1) LOOKING 2) LEADING 3) FOLLOWING
zab宏观上的三个阶段:
崩溃恢复
快速选举
原子广播
zab的微观的四个阶段:
选举
发现
同步
广播
11 watcher监听机制?zookeeper的权限ACL?
schema🆔permission
schema: world,ip.digest,auth
permission:RWACD