ZooKeeper替代品?(集群协调服务)

Tho*_*och 70 locking high-availability cluster-computing heartbeat apache-zookeeper

ZooKeeper是一种高度可用的数据中心协调服务.它起源于Hadoop项目.可以在其上实现锁定,故障转移,领导者选举,组成员资格和其他协调问题.ZooKeeper还有其他选择吗?(当然是自由软件)

ben*_*rtz 52

我在动物园管理员/广泛看着策展人,尤里卡,ETCD和领事.如果您在Java世界中,Zookeeper/Curator和Eureka在很多方面都是最精致和最容易集成的.Etcd非常酷且非常灵活,但它实际上只是一个HA密钥存储区,因此您必须编写大量代码才能将其转换为一个固定的服务发现系统.

领事(对我而言)是两全其美的.这是写在顶部的自以为是的服务发现系统农奴,使用通信集群的共识和八卦筏.它使用详细记录的REST api公开发现/注册端点,还允许您使用DNS SRV记录发现服务,并使用配置注册服务(即,您可以注册无法与客户端集成的数据库或应用程序,或者,如果您只是希望保持服务发现与您的应用程序分离)

我写了一篇关于领事博客文章,你可以在这里了解更多信息并完成我的"试用"演示

我还讨论了使用etcd和docker的服务发现,如果你想了解更多关于自定义代码的样子.

最后一件事!etcd和consul是用go编写的,所以维护它们比像zookeeper这样的java解决方案要容易得多.你需要的只是consul/etcd二进制文件.没有依赖关系,没有链接库,没有jvm.


ash*_*ash 26

有一个非常有前途的ZooKeeper替代品叫做etcd(github.com/coreos/etcd),由CoreOS团队编写.与Doozerd不同,etcd正在积极开发中.


Sil*_*lis 10

刚刚发现的Accord(C)和OpenReplica/ConCoord(Python)可能是有趣的解决方案

[编辑] Vashrant和Packer成名的Hashicorp工作人员正在烹饪"服务发现和协调的分散式解决方案",称为Serf.

[EDIT2] Hashicorp再次罢工!他们刚刚发布了Consul,建立在Serf之上.这个问题:"服务发现和配置的解决方案,完全分布式,高可用性,可扩展到跨多个数据中心的数千个节点和服务".

  • 并停止了! (2认同)

小智 8

是的,还有Doozerd(https://github.com/ha/doozerd).仔细看看它,它是由Heroku开发的一个很好的单一二进制分布式协调服务.使用java/python/ruby​​/node的绑定/库.很容易上手和玩耍.

  • Doozerd很不错,但它没有维护,也没有生产跟踪记录. (6认同)

Sco*_*ott 6

看看Serf.有一个比较VS动物园管理员在这里.


小智 1

github 上有一个名为 Noah 的项目看起来很有趣,它说它“松散地基于 Apache ZooKeeper” https://github.com/lusis/Noah,其中 REST 支持是一个关键功能(ZK 将此作为一个 contrib/option,而不是比内置的)。

  • Noah 对于不需要高可用性或作业安全性是可选的应用程序可能很有用。 (2认同)