1. 简介

  • 分布式的应用程序协调服务,Hadoop和Hbase的重要组件
  • 提供包括配置维护、域名服务、分布式同步、组服务等
  • 基于观察者模式(参考eureka)的分布式服务管理框架
  • 存储和管理公共数据(配置信息等)
  • 接受观察者的注册

    2. 特点

  1. 一个领导者(Leader),多个跟随者(Follower)组成ZooKeeper集群
  2. 集群中只要有半数以上的节点存活,ZooKeeper就能正常服务
  3. 每个节点都保存相同的数据副本
  4. 更新请求顺序执行,来自同一个Client的更新请求按照其发送顺序依次执行
  5. 数据的更新具有原子性

    3. 数据结构

    ZooKeeper的数据结构类似Unix的文件系统,每个节点称为一个znode,每个znode默认存储1M数据,每个znode都可以通过路径唯一标识

    4. 应用场景

  6. 统一命名服务-分布式环境下对应用/服务进行统一命名,便于识别

  7. 统一配置管理
    1. 统一管理集群的配置(Hadoop、Kafka等)
    2. 客户端可以将配置管理交给ZooKeeper(写入znode)
  8. 统一集群管理-实时掌握每个节点的状态(写入znode)
  9. 服务器节点动态上下线
  10. 软负载平衡