【发布时间】:2018-07-16 02:08:16
【问题描述】:
我将在我的应用程序中实现一组微服务的编排。我发现了两个广泛使用的工具 Apache Zookeeper 和 Netflix Eureka。
谁能根据这两种服务的基本差异进行比较?
还有其他强大的工具吗?
【问题讨论】:
标签: architecture microservices apache-zookeeper netflix-eureka orchestration
我将在我的应用程序中实现一组微服务的编排。我发现了两个广泛使用的工具 Apache Zookeeper 和 Netflix Eureka。
谁能根据这两种服务的基本差异进行比较?
还有其他强大的工具吗?
【问题讨论】:
标签: architecture microservices apache-zookeeper netflix-eureka orchestration
我将在我的应用程序中实现一组微服务的编排。
这是一个很难自己解决的问题。使用现有的编排系统可能会更好(见下文)。
还有其他强大的工具吗?
您应该研究一下 kubernetes,这似乎是当今编排的标准。它有许多额外的好处(实现可扩展性、自我修复等),并且在今天的生产中得到广泛使用。请参阅以下链接:
关于zookeeper、eureka和kubernetes的比较:
【讨论】:
另一个工具可能是Consul。
Eureka 主要是一种服务发现工具,主要设计用于在 AWS 基础设施内部使用。
Zookeeper 是一个通用的分布式键/值存储,可与curator-x-discovery framework 一起用于服务发现
这是一个简短的overview of service-discovery solutions
您还可以在此处找到Consul vs Eureka vs Zookeeper 的比较。
虽然 Consul 和 Zookeeper 一样好 - 不仅可以用于发现,还可以用作键/值存储,Consul 的优点是开箱即用的酷服务发现功能
consul 还具有更多的分布式特性:代理安装在所有服务虚拟机上,因此系统比 zookeeper 具有更高的可用性。 请注意,领事系统有low coupling between datacenters。
Zookeeper 很成熟,但过于笼统。因此,您不仅可以将 zookeeper 用于服务发现,还可以用于存储配置、分布式锁、通知等。同样,通过 Curator Framework / Curator Recipes 使用所有这些功能很方便。
Zookeeper 在集群中的节点之间使用主/从通信模式。 Master由集群成员选举产生。请注意,当集群中出现超过 1 个主节点时,可能会出现边缘情况(例如由于网络问题)。在这种情况下,重新启动集群会有所帮助。
Eureka 与 Zookeeper 和 Consul 的不同之处在于,Eureka 是一个狭义的系统——服务发现和负载均衡系统。
所有 3 个系统都可以与 Spring 集成。
【讨论】: