分布式系统中枢:ZooKeeper 原理、选举与应用
zookeeper就是一个分布式文件系统,不过存储数据的量极小,但是大数据领域还是离不开他的,比如hadoop集群、kafka集群、hbase 等都需要zookeeper的支持。它可以感知服务器是否上线,是否掉线。可用于维护和监控存储的数据的状态的变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。zookeeper在linux和windows等系统上的安装和使用也是非常方便的。同时要熟悉其一些shell操作比如create、set、get、ls、delete、watch监听等基础命令。zookeeper事务具有原子性(Atomicity),一次对 zookeeper 数据节点的修改操作(如create、setData、delete)要么同时成立,要么都不成立。zookeeper的选举机制也是面试时经常提到的,zookeeper中有两种角色:Leader 和 Fllower,Leader是集群各台电脑投票选举出来的。选举的关键,看这三个值epoch > zxid > myid,先比较 epoch,也就是逻辑时钟(参与过的选举的次数),如果epoch 相等,就看谁的zxid(代表的是事务的次数 如果这个值很大,就表示这个机器上的数据比较的新)大,谁就是Leader,如果zxid 也相等,就看每台电脑上的myid了,如果myid谁大谁是Leader。
