ZooKeeper 是一个开源的分布式协调服务,ZooKeeper 框架最初是在 "Yahoo!" 上构建的,用于以简单而稳健的方式访问应用程序。 后来,Apache ZooKeeper 成为 Hadoop,HBase 和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase 使用 ZooKeeper 跟踪分布式数据的状态。ZooKeeper 的设计目标,是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给其它系统使用。
ZooKeeper 是典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
Zookeeper 最常用的使用场景,就是用于担任服务生产者和服务消费者的注册中心(提供发布订阅服务)。
服务生产者将自己提供的服务注册到 Zookeeper 中心,服务的消费者在进行服务调用的时候先到 Zookeeper 中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo 架构中, Zookeeper 就担任了注册中心这一角色。