ZooKeeper是数据中心的高度可用的协调服务。它起源于Hadoop项目。人们可以在此基础上实现锁定、故障转移、领导者选举、组成员资格和其他协调问题。 有没有 ZooKeeper 的替代品? (当然是免费软件)
最佳答案
我广泛研究了 Zookeeper/Curator , Eureka , etcd和领事。如果您身处 Java 世界,Zookeeper/Curator 和 Eureka 在很多方面都是最完善且最容易集成的。 Etcd非常酷且非常灵活,但它实际上只是一个 HA key 存储,因此您必须编写大量代码才能将其变成固执己见的服务发现系统。
Consul (对我来说)是两全其美。这是一个写在 serf 之上的固执己见的服务发现系统。 ,使用 raft 进行集群共识,使用 gossip 进行通信。它使用记录良好的 REST api 公开发现/注册端点,还允许您使用 DNS SRV 记录发现服务,并使用配置注册服务(即,您可以注册无法与客户端集成的数据库或应用程序,或者如果您只是想让服务发现与应用程序解耦)
我写了一个blog post about consul您可以在其中了解更多信息并浏览我的“尝试一下”演示
我还讨论过service discovery with etcd & docker如果您想了解有关自定义代码的更多信息。
最后一件事! etcd 和 consul 是用 go 编写的,因此维护它们比像 Zookeeper 这样的 Java 解决方案要容易得多。您所需要的只是 consul/etcd 二进制文件。没有依赖项,没有链接库,没有jvm。
关于locking - 动物园管理员的替代品? (集群协调服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047917/