
Apache Zookeeper
最近更新 2026年10月5日
AI 爬虫读取
1次请求
1家公司- Anthropic1
- 词条页
- 1
- 争议页
- 0
- JSON · MD
- 0
- 首次读取
- 2026年11月4日
- 最近读取
- 2026年11月4日
统计自 2026年10月28日 · 数据来自本站服务器日志
概览
Apache ZooKeeper 是一个开源基础设施项目,为分布式应用提供集中式协调服务。它最初由 Yahoo 开发,旨在解决大规模分布式系统中反复出现的协调问题,包括配置管理、服务发现、领导者选举、同步和组成员关系。该项目后来被捐赠给 Apache 软件基金会,成为 Apache 生态系统的一部分,并发展成为分布式数据平台和其他集群服务广泛使用的基础组件。 ZooKeeper 暴露一个类似简化文件系统的层次化命名空间。应用程序在该命名空间中存储称为 znode 的小型协调记录,并可以读取、更新、创建、删除和监视它们。监视机制允许客户端在相关数据或子节点发生变化时收到通知。该模型支持常见的分布式系统模式,例如在竞争进程之间选举领导者、注册临时服务实例、维护共享配置以及实现分布式锁。ZooKeeper 面向协调元数据而非通用应用数据;其优势在于跨集群一致、高可用地管理少量状态。 该服务采用复制集群架构。服务器法定人数维护权威状态,而客户端连接到集群中可用的服务器。ZooKeeper 的一致性模型基于有序更新和法定人数复制,使客户端能够观察到协调状态的一致视图,同时允许服务在某些服务器故障时继续运行。其协议和 API 传统上通过 Java 和 C 绑定使用,更广泛的开源社区还提供了其他客户端库和集成。 ZooKeeper 在 Hadoop 和大数据生态系统中尤为重要。Apache 项目和商业平台使用它来协调 broker、控制器、工作节点、存储服务和其他集群组件。Apache Kafka 历史上使用 ZooKeeper 进行 broker 元数据和控制器协调,尽管 Kafka 较新的 KRaft 架构旨在消除这种依赖。其他分布式平台和企业系统也集成了 ZooKeeper,用于集群成员关系、故障转移、元数据协调或配置分发。 Apache ZooKeeper 品牌主要指一个软件项目和社区,而非传统的商业产品公司。该软件在 Apache 开源许可证下发布,开发、发布、文档、问题跟踪和治理均通过 Apache 项目流程进行。该项目没有单独上市的公司、独立的收入来源或专有订阅产品。其当前角色是一个活跃、成熟的协调组件,直接或间接用于分布式基础设施,尽管一些较新的系统已采用替代协调设计或不再使用 ZooKeeper 以减少运维依赖。
沿革
Apache ZooKeeper 于 2007 年在 Yahoo 诞生。其设计源于为大型分布式应用提供可复用协调服务的实际需求。在通用协调层出现之前,各个系统往往自行实现配置传播、命名、领导者选举、锁和故障检测机制。这些定制机制难以维护,并且在部分故障下可能表现不一致。ZooKeeper 试图将协调问题集中到一个小型、复制的服务中,并提供简单的编程模型。 该项目的核心抽象是包含称为 znode 的小型记录的层次化命名空间。持久 znode 会一直存在,直到被显式删除;临时 znode 与客户端会话关联,并在会话结束时消失。顺序 znode 可以获得单调递增的后缀。结合一次性监视,这些原语可以组合成更高级的模式,例如服务注册、领导者选举、分布式锁、屏障、配置发布和成员关系跟踪。ZooKeeper 并非通用数据库:应用程序通常存储协调元数据,并使用该服务在其他组件之间建立顺序和共享状态。 ZooKeeper 被捐赠给 Apache 软件基金会并成为 Apache 项目。随后它晋升为顶级项目,建立了独立于最初企业赞助商的社区主导治理结构、Apache 许可证和发布实践。该项目与 Hadoop 生态系统以及其他需要可靠集群协调的分布式数据系统紧密关联。其采用得益于相对聚焦的范围、客户端会话语义、法定人数复制以及以 Java 为中心的大数据栈中的集成。 在运维方面,ZooKeeper 以服务器集群方式部署。客户端连接到集群,并在连接失败时可以在服务器之间切换。集群使用基于法定人数的复制和有序事务,以便在故障仍处于系统容错假设范围内时,存活成员能够保持一致的协调状态。管理员仍需管理集群规模、磁盘性能、网络行为、会话超时、访问控制、升级以及协调数据与应用数据的区分。 ZooKeeper 一直是一个重要的基础设施组件,但其角色已经演变。一些较新的分布式系统将协调功能构建到自己的元数据层中,或选择替代的基于共识的设计。例如,Apache Kafka 历史上使用 ZooKeeper,但引入了 KRaft 以在没有独立 ZooKeeper 集群的情况下管理 Kafka 元数据。此类变化减少了 ZooKeeper 在特定生态系统中的足迹,但并未消除其普遍用途。该项目仍然是活跃的 Apache 开源产品,适用于需要成熟外部协调服务的系统。
- 2020
ZooKeeper 3.6.0 发布
[3]3.6.x 系列引入了进一步的平台、管理和运维改进,项目继续其成熟发布周期。
- 2011
ZooKeeper 3.3.0 发布
[3]3.3.x 系列成为在分布式基础设施中使用 ZooKeeper 的部署的重要成熟发布线。
- 2010
晋升为 Apache 顶级项目
[4]ZooKeeper 晋升为 Apache 顶级项目,并在 Apache 软件基金会内以独立项目治理方式运作。
- 2008
项目捐赠给 Apache 软件基金会
[4]ZooKeeper 进入 Apache 社区,其代码、发布和治理在基金会的开源项目流程下发展。
- 2007
ZooKeeper 在 Yahoo 创建
[2]Yahoo 开发 ZooKeeper,为分布式应用和大规模基础设施提供可复用的协调服务。
产品与定位
分布式协调服务 · 2007
Apache ZooKeeper 服务器
核心服务器软件以集群方式运行,维护复制的协调状态。它提供有序更新、客户端会话、监视、访问控制以及用于配置、命名、成员关系和同步用例的层次化命名空间。
软件开发接口 · 2007
ZooKeeper 客户端 API
客户端接口允许应用程序连接到集群并操作 znode、建立监视、管理会话以及实现更高级的协调模式。该项目传统上包含 Java 和 C 客户端支持,而其他语言客户端由更广泛的生态系统维护。
基础设施运维 · 2007
ZooKeeper 管理与监控工具
该项目包含管理命令、配置设施、四字运维命令、指标和监控集成点以及运维集群的文档。这些工具支持健康检查、故障排除、重新配置和日常集群管理。
品牌决策
2010
过渡到独立的 Apache 顶级项目治理战略背景
在 Yahoo 开发并捐赠给 Apache 之后,ZooKeeper 需要持久的社区治理模式以继续开源开发。
采取的行动
该项目在 Apache 软件基金会下晋升为顶级项目,项目决策和发布通过 Apache 社区流程管理。
后续影响
ZooKeeper 成为基金会管理的供应商中立项目,并扩大了其在 Apache 分布式系统生态系统中的作用。
- Kafka 转向 KRaft 减少对 ZooKeeper 的依赖换代
背景
Apache Kafka 历史上使用 ZooKeeper 进行集群元数据和控制器协调,但运行两个分布式系统增加了部署和管理开销。
采取的行动
Kafka 引入了 KRaft,这是一种使用 Kafka 自身基于法定人数的元数据管理而非独立 ZooKeeper 依赖的架构。
后续影响
较新的 Kafka 部署可以避免使用 ZooKeeper,而 ZooKeeper 继续作为通用协调服务并对其他系统保持相关性。
来源5 个来源
引用本词条: 请引用规范词条页。 /brand-wiki/apache-zookeeper · 编辑方针 · 词条如何编纂