zookeeper 最初是由 Yahoo 构建的用来访问它们的应用程序。后来归到 Apache 下,被 Hadoop , HBase 一起其他一些分布式框架使用
zookeeper 是一个集中式服务,主要作用:
Naming service (命名服务)
Configuration management (维护配置信息)
Cluster management (集群管理)
Leader election (leader 选举)
Locking and synchronization service
Highly reliable data registry
_________________________________________________________________________________________________________
zookeeper 组件 :
1. client
集群中的一个节点,访问服务器的信息,周期内向 server 发送信息,表明自己还处于存活状态。
server 向 client 响应信息,如果 server 没有响应,那么 client 会重定向到另一个 server。
2. server
zk集群中的一个节点,为 client 提供所有的服务。
3. ensemble
一组 zk 服务器,最小的节点数要求是 3 个。因为,zk规定有一半机器宕机就认为整个集群瘫痪。
4. leader
连接任何的节点失败,ledaer 负责恢复内个节点。在服务启动时候推举出 leader
5. followers
zk 集群中的节点,听从 leader 的指令。
———————————————————————————————————————————
zookeeper 名称空间等级
zookeeper 数据模型
类似于 linux 文件系统的树形结构。
每个节点 znode。
根节点 /
/config 集中式配置管理,每个 znode 上最大存储 1M 的数据。
/works 命名服务
——————————————————————————————————————————
znode 类型
persistence 默认所有的节点都是持久性的
ephemeral
sequential