122

我最近一直在看Zookeeper,想知道目前是否有人在使用它,以及他们专门使用它来存储什么。

最常见的用例是配置信息,但是你存储了什么样的数据和多少数据?

4

13 回答 13

17

HBase 使用 Zookeeper 来协调其“头节点”在当前版本之前负责的活动。使用 Zookeeper 意味着中央控制不再是单点故障。

Zookeeper 用途广泛;这是一个使用它来构建分布式并发队列的示例:

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

您当然也可以使用它在分布式系统中创建资源锁等。

于 2009-09-25T23:00:43.997 回答
14

老问题,但由于此页面首先出现在谷歌搜索 zookeeper 用例时,我认为最好提供更新列表

  1. 维基百科
  2. 动物园管理员维基
  3. 真实用户
于 2011-06-25T07:24:57.277 回答
13

DOSGi的Apache CXF 实现使用 zookeeper 作为其服务注册存储库。单个容器有一个分布式软件 (dsw) 捆绑包,用于侦听所有服务事件以及服务状态更改时具有指示分布的属性。dsw 与发现包对话,在参考实现案例中,发现包使用 zookeeper 将服务存储为临时节点。其他实例将查找节点结构的更改并在其本地系统上注册代理。最终结果是您可以编写纯 OSGi 代码并最终实现透明分发。

于 2009-09-26T21:16:46.080 回答
10

Norbert是可扩展生产系统的一个很好的例子。我一般来说,它将 Netty、Protocol Buffers 和 Zookeeper 集成到一个轻量级的框架中,用于运行集群服务。Protocol Buffers 用于指定您的服务 API,Netty 实现传输层抽象,Zookeeper 本质上是一个容错发现服务。

每次启动服务实例时,Norbert 都会将其注册为特定服务类型的可用实例。从实现的角度来看,它创建了两个 Zookeeper 树:

  • “/ServiceName/members”列出所有已知的服务实例
  • “/ServiceName/available”列出了当前可用的服务实例

每个节点最重要的属性是用于连接到相应服务实例的 url。它启用客户端负载平衡——Norbert 客户端查找给定服务名称的 url 列表,并尝试以某种顺序连接到其中一个(例如循环或随机)。

于 2011-01-12T07:45:12.650 回答
6

在 Elastic Cloud 上有一篇关于 ZooKeeper 的好文章ZooKeeper - The King of Coordination 。

At Found, for example, we use ZooKeeper extensively for discovery, resource allocation, leader election and high priority notifications. In this article, we'll introduce you to this King of Coordination and look closely at how we use ZooKeeper at Found

于 2015-01-22T06:25:02.053 回答
5

Solr 也在努力整合 ZooKeeper。在这里,您可以看到它们用于动态配置、分片、SPOF 消除(主/从选举)、重新平衡等。

于 2010-02-23T20:45:14.167 回答
3
  • Storm许多公司使用(Twitter 和 Groupon 是其中两个比较知名的公司)并且依赖于 Zookeeper。
  • Kafka被 Linkedin 使用,依赖于 Zookeeper。

Storm使用 Zookeeper 存储所有状态,以便它可以从任何(分布式)组件服务的中断中恢复。

这允许组件服务是无状态的,并且在需要配置数据时只需下载或与 Zookeeper 服务器同步。如果您曾经不得不恢复生产服务器,您就会知道这是多么令人头疼的事情!

Kafka队列消费者可以使用 Zookeeper 存储队列中已消费内容的信息(高水位线)。

于 2012-09-01T15:44:30.480 回答
2

除了配置之外,Zookeeper 还用于许多其他事情。这是使用 zookeeper 实现分布式原语的官方列表。

https://zookeeper.apache.org/doc/current/recipes.html

于 2012-05-17T02:12:27.127 回答
2

在我的例子中,我们将配置文件存储在 zookeeper ensemble 中以供集群使用。我们正在使用领导者 -> 追随者模式。因此,当一个动物园管理员停机时,我们会切换到另一个(复制模式)

于 2014-08-03T09:34:21.023 回答
1

Neo4j 使用 Zookeeper 他们的高可用性企业服务器! http://docs.neo4j.org/chunked/milestone/ha.html

于 2012-08-08T06:00:28.303 回答
1

datomic使用 apache zookeeper 来管理基于 riak 的数据存储。

由于目前 Riak 仅支持最终一致性,因此在 Riak 上运行的 Datomic 系统还利用了 Apache ZooKeeper,这是一种高可用的协调服务。Datomic 使用 ZooKeeper 进行事务处理故障转移协调,以及每个数据库中需要使用 CAS 更新的少数密钥。来源:http ://blog.datomic.com/2012/11/riak-and-couchbase-support.html

于 2013-06-13T14:46:30.510 回答
0

这里有一些关于 HBase 如何使用 ZooKeeper 的细节,包括他们打算在未来如何使用它的信息。通常,他们使用它通过使用 ZooKeeper 实现的领导者选举来消除区域服务器上的 SPOF。

于 2010-02-23T20:40:40.023 回答