ZooKeeper,是一个集群管理工具,提供配置维护、域名服务、分布式同步和组服务等。ZooKeeper有单机模式和集群模式两种安装模式。[1][2] ZooKeeper的各个服务节点组成一个集群(如果有2n+1个节点,则允许n个节点失效)。ZooKeeper集群中有两个角色:一个是Leader,主要负责写服务和数据同步;另一个是Follower,提供读服务。当Leader失效后,Follower将在所有Follower中重新选举出新的Leader。[3] ZooKeeper主要用于实现分布式系统中Master选举、分布式协调、集群管理、负载均衡、分布式锁等功能。在HBase集群中,ZooKeeper服务器为其提供稳定可靠的协作服务管理。[4] 软件简介
ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer,具体算法可见Fast Paxos。因此要想弄懂ZooKeeper首先得对Fast Paxos有所了解。