ZooKeeper 是一个高可用、强一致的分布式协调服务,用类似文件系统的 znode 树存储少量协调数据,并提供 Watch、会话、ACL、顺序节点等原语。Hadoop、HBase、Kafka(旧版本)、Dubbo 等系统都用它做选主、配置、注册和分布式锁。
本文基于 Apache ZooKeeper 3.9.6(current,2026-10)官方文档重写,按「数据模型 → 会话/Watch → 一致性 → Zab/选举 → 持久化 → 运维 → 客户端/Recipes → 故障」展开 deep dive。
ZooKeeper 适合存控制面元数据,不适合大 Value、日志、图片或高吞吐业务数据。默认单 znode 数据上限约 1 MiB(
jute.maxbuffer),生产建议控制在 KiB 级。