ZooKeeper(简称ZK)是一个开源的分布式应用程序协调系统,主要用于解决分布式环境中的数据一致性问题。以下是其核心要点:
一、核心功能
分布式协调 提供数据发布/订阅、负载均衡、名称服务、分布式锁等核心功能,帮助构建高可用架构。
数据模型
采用树形结构存储数据,类似Linux文件系统,但仅支持少量轻量级数据存储,不适用于大文件。
集群管理
包含leader选举机制,支持单节点leader、多节点follower和观察者(observer)三种角色,确保系统高可用性。
二、典型应用场景
注册中心: 服务注册与发现,如Kafka使用ZK存储元数据、偏移量等; 配置管理
分布式锁:实现多节点对共享资源的互斥访问。
三、技术特性
基于Java开发:原生支持Java,也提供AJAX/XUL接口,便于Web应用集成;
事件驱动架构:通过ZAB协议保证数据一致性,支持高并发场景。
四、数据结构
znode:树形结构中的数据单元,包含路径、子节点等信息;
ACL权限管理:支持细粒度的访问控制。
五、与Hadoop生态集成
作为Hadoop的子项目,ZK在Hadoop生态中主要用于协调任务调度、数据同步等场景。
注意:在KTV等特定场景中,“ZooKeeper”可能被用作中控系统的简称(如Zone KTV),但这是特定行业的术语,与分布式系统中的ZooKeeper无关。