Zookeeper 为分布式系统提供一次性的服务,管理和协调分布式系统的工作,保证系统的高有效性。为什么需要它?因为分布式系统很容易出错,特别是在处理竞争和死锁的过程中。
提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。