在Rancher中运行Docker容器时,Netflix的Eureka能否提供任何好处?

时间:2017-11-20 16:21:17

标签: spring docker netflix-eureka spring-cloud-netflix rancher

我们使用Spring Cloud Netflix创建了一系列使用Spring Boot构建的微服务。到目前为止,它们已被打包为RPM并部署到VM。使用Eureka允许服务注册/发现(显然),我们的跨微服务交互使用Spring的RestTemplate与虚拟IP(VIP)完成,如下所示:

http://foo-service/<PATH_TO_RESOURCE>

客户端负载平衡是另一个好处。

现在,我们正在寻找使用Docker并在Rancher中运行。我想知道在这种环境下使用Eureka仍然有意义。

在Rancher中,如果服务被命名为“foo-service&#39;”,那么该名称将用作Rancher内部网络中的VIP,因此上面显示的相同URL也可以使用,无论是Eureka。

此外,如果有多个Container支持服务,Rancher将在它们之间循环负载平衡流量。

另外,看起来Rancher会比Eureka更早了解容器的来来往往。

我努力找到留下尤里卡的坚实理由。

1 个答案:

答案 0 :(得分:4)

对Rancher,AFAIK不太熟悉,它使用户可以选择Cattle,Docker Swarm,Apache Mesos或Kubernetes来管理您的容器。

因此,最终归结为您的基础架构平台是否提供服务发现功能(我知道Docker swarm和Kubernetes提供服务发现,不确定其他人);如果您从平台上获得免费服务发现,并且如果您不需要客户端负载平衡,那么尤里卡是一种过度杀伤

以下是Kubernetes背景下的问题的答案

https://stackoverflow.com/a/40568412/6785908

引用相关部分

  

在Kubernetes平台,使用Eureka(或Consul / zookeeper any   服务发现的其他服务注册表是一种过度杀伤力;您   可以与Kubernetes服务实现相同(可论证)的功能   (+ kube DNS Addon),它将充当可参考的IP地址和负载   短暂的Pods(不是客户端)。读这个   [文章] [1]由Christian Posta撰写。如果您想通过推荐您的服务   它的名称而不是IP地址添加KubeDNS(A kubernetes add on)   你的集群。

http://blog.christianposta.com/microservices/netflix-oss-or-kubernetes-how-about-both/

修改

既然你说过,

  

在Rancher中,如果服务名为'foo-service',则将其用作a   Rancher内部网络中的VIP所以上面显示的URL相同   也可以工作,没有尤里卡。

     

此外,如果有多个Container支持服务,Rancher会   他们之间的轮流负载平衡流量。

因此,您可以从您的平台免费获得服务发现和(服务器端)负载均衡器。因此,如果您没有令人信服的理由进行客户端负载平衡,请忘记eureka。