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之上.这个问题:"服务发现和配置的解决方案,完全分布式,高可用性,可扩展到跨多个数据中心的数千个节点和服务".
小智 8
是的,还有Doozerd(https://github.com/ha/doozerd).仔细看看它,它是由Heroku开发的一个很好的单一二进制分布式协调服务.使用java/python/ruby/node的绑定/库.很容易上手和玩耍.
小智 1
github 上有一个名为 Noah 的项目看起来很有趣,它说它“松散地基于 Apache ZooKeeper” https://github.com/lusis/Noah,其中 REST 支持是一个关键功能(ZK 将此作为一个 contrib/option,而不是比内置的)。