官方网站链接:https://zookeeper.apache.org/
简介
ZooKeeper可为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。其目标是封装复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
功能特性
1. 数据订阅/发布
发布者将数据发布到ZooKeeper的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,从而实现配置信息的集中式管理和数据的动态更新。
2. 负载均衡
分布式系统具有对等性,为了保证系统的高可用性,通常采用副本的方式来对数据和服务进行部署。对消费者而言,则需要在这些对等的服务提供方中选择一个来执行相关的业务逻辑,ZooKeeper很好的解决该问题。
3. 命名服务
在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。被命名的实体通常可以是集群中的机器,提供的服务地址,远程对象等等。
4. 集群管理
客户端如果对ZooKeeper的一个数据节点注册Watcher监听,那么当该数据节点的内容或其子节点的列表发生变更时,ZooKeeper服务器就会向订阅的客户端发送变更通知。而对在ZooKeeper上创建的临时节点,一旦客户端与服务器之间的会话失效,那么该临时节点也就被自动清除。
5. 分布式锁
ZooKeeper支持分布式锁功能,其锁服务可以分为两类,一种是独占式锁,一种是控制时序锁。