zookeeper名字由来

其名字汉译为动物管理员,因为Hadoop,Hbase,Hive等大数据技术的图标都是动物,而zookeeper作为Hadoop,Hbase集群的协调者来讲,像是一个动物园的管理员。

zookeeper选举机制

zookeeper启动后,分为两阶段①数据恢复阶段②选举阶段。

在第①阶段中会读取事物id,在第②阶段中根据选举协议来确定leader。

选举协议中有三个重要的概念:

a.事物id

b.选举id(配置文件中的myid)

c.过半性原则(得到的选票超过半数,除去observe机子,因为observer不参与投票,只监听投票结果)

选举时,先比较事物id,如果事物id大,且满足过半性,则为leader。如果事物id都一样,则比较选举id,选举id大,且满足过半性则其为leader。因此,假设有3台机子,都不为obsever机子,事物id都一样,选举id依次为1,2,3,依次启动这三台机子,那么整个集群的leader为机子2。如果启动顺序为1,3,2,那么leader为3机子。

zookeeper的zab协议

zab协议:为了保证zookeeper集群数据一致性的原子广播协议,其实对2pc协议的优化,2pc协议中如果有一个分支事物失败,则整个事物回滚,这个模式比较低效,而zab协议的优化是:成功的分支事物操作满足过半性后,整个事物就会成功,不用所有分支事物都成功。

observer

不参与投票和写请求,可以提供读请求。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐