Apache ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper是一个独立的顶级项目,曾经是Hadoop的一个子项目。

Apache ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper 曾经是 Hadoop 的一个子项目,但现在是一个独立的顶级项目。

Apache ZooKeeper

ZooKeeper 的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台 ZooKeeper 主机。ZooKeeper 节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的。

使用 ZooKeeper 的公司包括 Rackspace、雅虎和 eBay,以及类似于像 Solr 这样的开源企业级搜索系统。

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper 是以 Fast Paxos 算法为基础的,Paxos 算法存在活锁的问题,即当有多个 proposer 交错提交时,有可能互相排斥导致没有一个 proposer 能提交成功,而 Fast Paxos 作了一些优化,通过选举产生一个 leader (领导者),只有 leader 才能提交 proposer,具体算法可见 Fast Paxos。因此,要想弄懂 ZooKeeper 首先得对 Fast Paxos 有所了解。

在 Zookeeper 中,znode 是一个跟 Unix 文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建 znode 时 Flag 设置为 EPHEMERAL,那么当创建这个 znode 的节点和 Zookeeper 失去连接后,这个 znode 将不再存在在 Zookeeper 里,Zookeeper 使用 Watcher 察觉事件信息。当客户端接收到事件信息,比如连接超时、节点数据改变、子节点改变,可以调用相应的行为来处理数据。Zookeeper 的 Wiki 页面展示了如何使用 Zookeeper 来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交。

0个人收藏 收藏

相关推荐

  • Apache

    Apache,世界排名第一的开源Web服务器软件

    Apache是一款广受欢迎的开源Web服务器软件,以其模块化架构、高度可定制性和广泛的操作系统兼容性著称。它支持虚拟主机、SSL加密、多种编程语言,适用于各种规模的网站和应用。与Nginx相比,Apache在动态内容处理方面更加丰富,虽然在高并发处理上可能略逊一筹。
  • Apache Hadoop

    Apache Hadoop,成熟开源的大数据处理框架

    Apache Hadoop是一个开源大数据处理框架,以其强大的存储能力、高效的批量数据处理和出色的可扩展性而闻名。它包括HDFS、YARN和MapReduce等核心组件,专注于处理PB级数据。尽管新兴技术如Spark在特定场景中更为高效,Hadoop在大规模数据集处理、高容错性和数据冗余方面仍然是首选。
  • Apache Mesos

    Apache Mesos,功能强大的开源集群管理系统

    Apache Mesos是一款高度灵活的开源集群管理工具,专为大规模复杂的数据中心和云环境设计。它通过资源抽象和隔离提高资源利用率,支持多租户和配额管理,并提供强大的容错能力。Mesos尤其适用于需要精细资源控制的大数据和科学计算场景,但其复杂性意味着有一定的学习门槛。
  • WordPress Apache Nginx

    Apache和Nginx哪个更适合WordPress

    Apache和Nginx都适用于WordPress,但选择依赖于多个因素:团队经验、预算、网站规模和性能需求。Nginx在高性能和并发处理方面表现出色,适合大型站点和高可用性需求。Apache适合小型站点和团队熟悉的情况。性能优化对于两者都重要,包括使用缓存插件、图像优化和启用GZIP压缩。
  • Nginx Apache

    Nginx和Apache有哪些区别

    Nginx和Apache是两种常用的Web服务器,它们有着不同的设计哲学和性能特点。Nginx采用事件驱动架构,在高并发环境下表现出色,适合静态文件服务和反向代理。而Apache采用传统多进程/多线程模型,适用于复杂的动态内容处理和模块扩展。Nginx配置简洁,资源消耗低,而Apache拥有庞大的模块生态系统。
  • Apache Hadoop YARN

    Apache Hadoop YARN是什么

    Apache Hadoop YARN是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。