1. 简介
- 分布式的应用程序协调服务,Hadoop和Hbase的重要组件
- 提供包括配置维护、域名服务、分布式同步、组服务等
- 基于观察者模式(参考eureka)的分布式服务管理框架
- 存储和管理公共数据(配置信息等)
- 接受观察者的注册
2. 特点
- 一个领导者(Leader),多个跟随者(Follower)组成ZooKeeper集群
- 集群中只要有半数以上的节点存活,ZooKeeper就能正常服务
- 每个节点都保存相同的数据副本
- 更新请求顺序执行,来自同一个Client的更新请求按照其发送顺序依次执行
-
3. 数据结构
ZooKeeper的数据结构类似Unix的文件系统,每个节点称为一个znode,每个znode默认存储1M数据,每个znode都可以通过路径唯一标识
4. 应用场景
统一命名服务-分布式环境下对应用/服务进行统一命名,便于识别
- 统一配置管理
- 统一管理集群的配置(Hadoop、Kafka等)
- 客户端可以将配置管理交给ZooKeeper(写入znode)
- 统一集群管理-实时掌握每个节点的状态(写入znode)
- 服务器节点动态上下线
- 软负载平衡