我们已经在高层次上讨论了zookeeper暴露给应用程序的操作,现在我们需要更多地理解它是如何工作的。应用程序通过客户端的库来调用zookeeper。客户端库复杂与zookeeper服务器之间的交互。
图2-5展示了客户端和服务器的关系。每个客户端都要导入客户端库,然后才能与zookeeper节点通信。
![](/assets/Figure 2-5.png)
图2-5 Zookeeper架构总览
Zookeeper服务器运行在两种模式下面:单机模式和仲裁模式。单机模式显而易见只有一台服务器,并且zookeeper的状态不是复制的。仲裁模式中,一组zookeeper服务器,我们称之为Zookeeper集合,它们复制状态同时一起服务客户端的请求。从这个角度看,我们用"Zookeeper集合"来代表服务器的安装。这个安装可能包含单台服务器并已独立模式操作,也可能包含一组服务器并以集群模式操作。