【问题标题】:What is the role of Zookeeper vs Eureka for microservices?Zookeeper 与 Eureka 对微服务的作用是什么?
【发布时间】:2018-07-16 02:08:16
【问题描述】:

我将在我的应用程序中实现一组微服务的编排。我发现了两个广泛使用的工具 Apache Zookeeper 和 Netflix Eureka

谁能根据这两种服务的基本差异进行比较?

还有其他强大的工具吗?

【问题讨论】:

    标签: architecture microservices apache-zookeeper netflix-eureka orchestration


    【解决方案1】:

    我将在我的应用程序中实现一组微服务的编排。

    这是一个很难自己解决的问题。使用现有的编排系统可能会更好(见下文)。

    还有其他强大的工具吗?

    您应该研究一下 kubernetes,这似乎是当今编排的标准。它有许多额外的好处(实现可扩展性、自我修复等),并且在今天的生产中得到广泛使用。请参阅以下链接:

    关于zookeeper、eureka和kubernetes的比较:

    • Zookeeper 是分布式键值存储。可以作为实现服务发现的基础(类似于etcd)。
    • Eureka 主要是一个服务定位器,用作 Netflix 负载平衡器和故障转移的一部分(允许找到正确的服务目标,以便将客户端调用分发给应用程序集群的成员)。
    • Kubernetes 是一个容器编排解决方案,包括服务的部署、发现和自愈。有关功能的完整列表,请查看上面的链接。 kubernetes 中的服务发现基于它跨越并构建在 etcd 之上的虚拟网络中的 dns。
    • Consul(在另一个答案中提到)是一个服务发现框架,具有 REST 接口和一些附加功能(健康检查、服务分段等)。它有自己的内部分布式键值存储,也可以使用。

    【讨论】:

    • 感谢您的回答。无论如何,我并没有告诉我要在没有任何工具的情况下自己解决它。无论如何,你能告诉我kubernetes和zookeeper/eureka之间的关系吗?
    • Eureka 根本不是负载均衡器,它是服务发现。 Ribbon 做负载均衡。
    • @123:我增强了这句话以确保它确实反映了 Eureka 仅用作 Netflix 负载平衡的一部分。
    • zookeeper 如何同时作为“协调服务”和“服务发现”而 eureka 只是“服务发现”?有没有讨论这个的博客或链接?
    【解决方案2】:

    另一个工具可能是Consul

    Eureka 主要是一种服务发现工具,主要设计用于在 AWS 基础设施内部使用。

    Zookeeper 是一个通用的分布式键/值存储,可与curator-x-discovery framework 一起用于服务发现

    这是一个简短的overview of service-discovery solutions

    您还可以在此处找到Consul vs Eureka vs Zookeeper 的比较。

    虽然 Consul 和 Zookeeper 一样好 - 不仅可以用于发现,还可以用作键/值存储,Consul 的优点是开箱即用的酷服务发现功能

    1. DNS 开箱即用
    2. 方便的 RESTful API
    3. 开箱即用的 HealthCheck API

    consul 还具有更多的分布式特性:代理安装在所有服务虚拟机上,因此系统比 zookeeper 具有更高的可用性。 请注意,领事系统有low coupling between datacenters

    Zookeeper 很成熟,但过于笼统。因此,您不仅可以将 zookeeper 用于服务发现,还可以用于存储配置、分布式锁、通知等。同样,通过 Curator Framework / Curator Recipes 使用所有这些功能很方便。

    Zookeeper 在集群中的节点之间使用主/从通信模式。 Master由集群成员选举产生。请注意,当集群中出现超过 1 个主节点时,可能会出现边缘情况(例如由于网络问题)。在这种情况下,重新启动集群会有所帮助。

    Eureka 与 Zookeeper 和 Consul 的不同之处在于,Eureka 是一个狭义的系统——服务发现和负载均衡系统。

    所有 3 个系统都可以与 Spring 集成。

    【讨论】:

    • 感谢您的回复。您能否详细说明您对这 3 个工具的理解,而不是显示链接。这会很有帮助。 :))
    • 阐述了我对这些系统的理解
    猜你喜欢
    • 2022-08-14
    • 1970-01-01
    • 2020-11-26
    • 2020-05-22
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多