A top-down view of the ZooKeeper service
As you are aware, Apache ZooKeeper is a coordination service for distributed applications. It aims to solve the tough problems associated with the coordination of components in a distributed application. It does this by exposing a simple yet powerful interface of primitives. Applications can be designed on these primitives implemented through ZooKeeper APIs to solve the problems of distributed synchronization, cluster configuration management, group membership, and so on.
ZooKeeper is, in itself, a replicated and distributed application, with the intention to be run as a service, similar to the way we run DNS or any other centralized service. A view of the ZooKeeper service is shown in the following diagram:
From the preceding diagram (the image is referenced from http://zookeeper.apache.org/doc/r3.4.6/zookeeperOver.html), you will see the replicated set of servers on which the ZooKeeper service...