Zookeeper面试题
一:ZK的选举机制
假使有3台服务器,id分别为1、2、3:
1、服务器1启动,投自己一票,启动的服务器未达半数以上,此时状态为looking
2、服务器2启动,重新投票,1和2都投自己1票并交换选票信息,1发现2的id比自己大,把自己的票重写投给2,此时服务器已经启动半数以上,完成选举。1为0票,2为2票,2就是LEADING
如果所有服务器同时启动的话,id最大的服务器为LEADING
二:ZK的监听原理
三:ZK的部署方式有哪些?ZK中的角色有哪些?集群最少需要几台?常用命令?
1、单机模式部署和集群模式部署
2、LEADER:Leader作为整个Zookeeper集群的主节点,负责响应所有对Zookeeper状态变更的请求。它会将每个状态更新请求进行排序和编号,以便保证整个集群内部消息处理的FIFO。
Follower:除了响应本服务器上的读请求外,Follower还要处理Leader的提议,并在Leader提交该提议时在本地也进行提交。Follower处理提议的过程已经在ZAB协议中描述过了。
Observer:如果Zookeeper集群的读取负载很高,或者客户端多到跨机房,可以设置一些observer服务器,以提高读取的吞吐量。Observer和Follower比较相似,只有一些小区别:首先observer不属于法定人数,
即不参加选举也不响应提议;其次是observer不需要将事务持久化到磁盘,一旦observer被重启,需要从leader重新同步整个名字空间。
3、最少3台,最好为奇数台
4:ls create get delete set