天天看点

zookeeper特性及实现原理

解决的问题:

解决大量计算机数据一致性问题,同时使得网络中数据同步的可靠性增强。

鲜明特点:

zookeeper为分布式数据管理集群。在对客户端的管理中有效措施为:客户端申请的节点类型及监听机制。

节点类型有三种

持久节点,只有当客户端明确删除才能被删除。

临时节点,客户端会话结束,即被删除,且不能有子结点。

顺序结点,顺序的创建子节点。

监听机制

使客户端的数据同步。监控目录结点及子目录的变化,一旦变化通知所有watcher,从而每个客户端很快知道变化,做出相应反应。

zookeeper组成:

成员

follower(处理非事务,如读操作),leader(只能有一个,处理事务),observer(加快处理非事务,不参与leader选举)

ZAB协议(对自身的管理)

事务编号:每个事务有一个事务编号:ZXID,myID(自己选择,每个节点不同)

ZXID高32位为选举周期(leader朝代),低32位为递增计数器,随事务的到来递增,新周期到来则清零。

zk的核心是原子广播,保证zk内各个服务节点之间的同步。ZAB协议使其得以实现。ZAB有两种模式:恢复模式和广播模式。

当服务器启动或者领导者崩溃之后,进入恢复模式。当领导者被选举出来且大多数follower完成了与其状态同步之后,恢复模式结束。

状态同步保证了leader和server具有相同的系统状态。