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

                                                                                                                  关闭。这个问题是题外话。它当前不接受答案。                                                      
已邀请:
我已经广泛研究了Zookeeper / Curator,Eureka,etcd和领事。如果您在Java世界中,Zookeeper / Curator和Eureka在许多方面都是最精致,最容易集成的。 Etcd非常酷并且非常灵活,但是它实际上只是一个HA密钥存储区,因此您必须编写大量代码才能将其转变为可靠的服务发现系统。 领事对我而言是两全其美的。这是一个自发的服务发现系统,写在农奴之上,使用筏进行集群共识,并使用八卦进行通信。它使用完善的REST api公开发现/注册端点,还允许您发现具有DNS SRV记录的服务,并通过配置注册服务(即,您可以注册无法与之集成客户端的数据库或应用程序,或者如果您只是想让服务发现与您的应用脱钩) 我已经写了一篇有关领事的博客文章,您可以在其中了解更多信息并浏览我的“尝试一下”演示 如果您想了解有关自定义代码的外观的更多信息,我还与etcd和docker讨论了服务发现。 最后一件事! etcd&consul是用go语言编写的,因此维护它们比使用zookeeper之类的Java解决方案要容易得多。您只需要consul / etcd二进制文件。没有依赖项,没有链接的库,没有jvm。     
ZooKeeper有一个非常有希望的替代方法,称为Cored团队编写的etcd(github.com/coreos/etcd)。与Doozerd不同,etcd正在积极开发中。     
刚发现Accord(C)和OpenReplica / ConCoord(Python)可能是有趣的解决方案 [编辑] Vagrant和Packer名望的Hashicorp团队正在烹饪“一种用于服务发现和编排的分散式解决方案”,称为Serf。 [EDIT2] Hashicorp再次罢工!他们刚刚发布了建立在Serf之上的Consul。主题:“用于服务发现和配置的解决方案,完全分布式,高可用性,可扩展到跨多个数据中心的数千个节点和服务”。     
是的,还有Doozerd(https://github.com/ha/doozerd)。好好看一下,它是Heroku开发的一种不错的单一二进制分布式协调服务。具有Java / python / ruby​​ / node的绑定/库。非常容易上手并玩转。     
看一下农奴。这里有一个与Zookeeper的比较。     
我的研究小组的OpenReplica是针对数据中心的高度可用的FOSS协调服务。它可用于实施锁定,故障转移,领导者选举,小组成员资格和其他协调服务。它与ZooKeeper的区别在两个关键方面: 它使用面向对象的API。这使得编写协调服务变得更加容易。 OpenReplica的同步代码与教科书完全相同。无需像ZooKeeper和Chubby中那样掌握文件和基于上行的API。 它允许对副本集进行动态成员资格更新。不需要静态配置文件。该系统已集成到DNS(权威,OpenReplica的从属服务器或Amazon Route 53)中。 我们会积极支持该系统,如果您还有其他问题,请随时与我们联系。     
在github上有一个名为Noah的项目看起来很有趣,它说它“宽松地基于Apache ZooKeeper \” https://github.com/lusis/Noah,其中REST支持是关键功能(ZK具有这是一种贡献/选项,而不是内置的)。     
有多种工具可针对不同的工程权衡进行优化。 ZooKeeper仅略微缩放读取;与许多观察者的交流可能很慢。它已被证明并具有相当大的社区。 Accord似乎对写密集型用途很有趣,但是典型的用例已经具有特定于域的解决方案(即日志记录,遥测)。 其他的有些有趣,但通常未经证实。如果打算用于生产用途,请不要误解。     
我找到了Zookeeper,etcd和Doozer的以下比较: http://devo.ps/blog/zookeeper-vs-doozer-vs-etcd/ 农奴(serfdom.io)也是一个不错的解决方案,因为它很简单!但是您必须考虑,SERF只是一个集群管理器,使您可以将自定义事件发送到所有集群节点。很好,但是您必须编写自己的Shell脚本(又名事件)。 请参见以下示例:\“ https://www.digitalocean.com/community/articles/how-to-set-up-a-serf-cluster-on-several-ubuntu-vps \” 优点是,您将获得一个非常简单的集群管理器,并且可以将其与您喜欢的配置,部署或持续集成工具结合在一起。     
似乎Corosync也像ZooKeeper。     
我知道这篇文章已经很老了,但是我正在寻找所有可能的替代方法的人,我也想建议JGroups库,它已经足够成熟,可以在生产环境中使用。我在一个项目中成功使用了它,主要用于分布式协调和在集群之间共享消息。除了灵活的架构外,它还支持AWS支持,您可以在其中自定义其堆栈以获取所需的内容。我建议你看看     

要回复问题请先登录注册