在Rancher中运行Docker容器时,Netflix的Eureka是否有任何好处?

Jam*_*tti 1 spring docker netflix-eureka rancher spring-cloud-netflix

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

http://foo-service/<PATH_TO_RESOURCE>
Run Code Online (Sandbox Code Playgroud)

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

现在,我们希望使用Docker并在Rancher中运行。我想知道在这种环境下使用Eureka还是有意义的。

在Rancher中,如果该服务名为“ foo-service”,则该名称将用作Rancher内部网络中的VIP,因此,上面显示的相同URL也可以使用,Eureka除外。

此外,如果有多个容器支持服务,则Rancher将在其中循环负载均衡流量。

另外,似乎Rancher会比Eureka更早地了解Containers的来来往往。

我正在努力寻找保留尤里卡的坚实理由。

so-*_*ude 5

AFAIK对Rancher不太熟悉,它使用户能够部署Cattle,Docker Swarm,Apache Mesos或Kubernetes来管理您的容器。

因此,最终归结为您的基础架构平台是否提供服务发现功能(我知道Docker swarm和Kubernetes提供服务发现,不确定其他人)。如果您可以从平台上直接获得免费的服务发现功能,并且不需要客户端负载平衡,那么eureka是一个过大的选择

这是关于Kubernetes的问题的答案

/sf/answers/2839788871/

报价相关部分

在Kubernetes平台中,使用Eureka(或Consul / zookeeper任何其他服务注册表)进行服务发现是过大的;您可以使用Kubernetes Services(+ kube DNS插件)实现相同(可以说是)的功能,它将用作临时Pod的可参考IP地址和负载平衡器(不是客户端)。阅读克里斯蒂安·波斯塔的这篇[文章] [1]。如果要通过服务名称而不是IP地址来引用服务,则将KubeDNS(添加kubernetes)添加到群集中。

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

编辑

既然你说

在Rancher内部,如果该服务被命名为“ foo-service”,则在Rancher内部网络中将其用作VIP,因此上面显示的相同URL也可以使用,Eureka除外。

另外,如果有多个容器支持服务,则Rancher将在它们之间循环负载均衡流量。

因此,您可以从平台上免费获得服务发现和(服务器端)负载均衡器。因此,如果您没有令人信服的理由进行客户端负载平衡,那就不用担心尤里卡了。