Zookeeper vs Eureka对微服务的作用是什么?

时间:2018-02-06 05:00:32

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

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

任何人都可以根据基本差异给我一个比较,这两项服务有哪些?

还有其他强大的工具吗?

2 个答案:

答案 0 :(得分:11)

另一个工具可能是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开箱即用
  4. 此外,consul具有更多的分布式特性:代理程序安装在所有服务VM上,因此系统具有比zookeeper更高的可用性。 请注意,领事系统有low coupling between datacenters

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

    Zookeeper正在群集中的节点之间使用主/从通信架构。硕士由集群成员选举产生。请注意,当群集中出现1个主服务器时,可能存在边缘情况(例如,由于网络问题)。在这种情况下,重新启动群集有帮助。

    Eureka与Zookeeper和Consul的区别在于Eureka是一个狭隘的系统 - 服务发现和负载均衡系统。

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

答案 1 :(得分:11)

  

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

这是一个难以自行解决的问题。您最好使用现有的业务流程系统(见下文)。

  

还有其他强大的工具吗?

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

关于比较zookeeper,eureka和kubernetes:

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