我最近一直在看Zookeeper,并想知道当前是否有人使用它以及它们是专门用于存储的.
最常见的用例是配置信息,但是您存储的数据类型和数据量是多少?
HBase使用Zookeeper来协调其"头节点"在当前版本之前负责的活动.使用Zookeeper的举措意味着中央控制不再是单点故障.
Zookeeper非常多才多艺; 这是一个使用它来构建分布式并发队列的示例:
http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/
您当然也可以使用它在分布式系统中创建资源锁等.
老问题,但由于这个页面首先出现在google搜索zookeeper用例,我认为最好给出一个更新的列表
维基百科
zookeeper维基
真正的用户
由ZooKeeper提供支持的免费软件项目:
AdroitLogic UltraESB
阿卡
Eclipse通信框架
Eclipse Gyrex
GoldenOrb
且具
凯塔
KeptCollections
Mesos
Neo4j的
诺伯特
Talend ESB
redis_failover
由ZooKeeper支持的Apache项目:
Apache Accumulo
Apache BookKeeper
Apache CXF DOSGi
Apache Flume
Apache Hadoop MapReduce
Apache HBase
Apache Hedwig
阿帕奇卡夫卡
Apache S4
Apache Solr
资料来源: https ://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
DOSGi 的Apache CXF实现使用zookeeper作为其服务注册存储库.单个容器具有分布式软件(dsw)捆绑包,该捆绑软件监听所有服务事件以及当服务状态发生变化时具有指示分发的属性.dsw与发现包进行通信,在参考实现的情况下,它使用zookeeper将服务存储为临时节点.其他实例将查找节点结构的更改并在其本地系统上注册代理.最终结果是您可以编写简单的OSGi代码并最终实现透明分发.
Norbert是可扩展生产系统的一个很好的例子.总的来说,它将Netty,Protocol Buffers和Zookeeper集成到一个用于运行集群服务的轻量级框架中.协议缓冲区用于指定服务API,Netty实现传输层抽象,Zookeeper本质上是容错发现服务.
每次启动服务实例时,Norbert都会将其注册为特定服务类型的可用实例.从实现的角度来看,它创建了两个Zookeeper树:
"/ ServiceName/members"列出了所有已知的服务实例
"/ ServiceName/available"列出了当前可用的服务实例
每个节点最重要的属性是用于连接到相应服务实例的URL.它支持客户端负载平衡 - Norbert客户端查找给定服务名称的URL列表,并尝试连接其中一个是某种顺序(例如循环或随机).
有一篇很好的文章ZooKeeper- Elastic Cloud上有关ZooKeeper 的协调之王。
例如,在Found公司,我们广泛使用ZooKeeper进行发现,资源分配,领导者选举和高优先级通知。在本文中,我们将向您介绍这位“协调之王”,并仔细研究如何在Found公司使用ZooKeeper。