代码之家  ›  专栏  ›  技术社区  ›  Jamie Bisotti

在Rancher中运行Docker容器时,Netflix的Eureka有什么好处吗?

  •  1
  • Jamie Bisotti  · 技术社区  · 7 年前

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

    http://foo-service/<PATH_TO_RESOURCE>
    

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

    现在,我们希望使用Docker并在Rancher内运行。我想知道在这种环境下使用Eureka仍然有意义。

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

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

    此外,牧场主似乎比尤里卡更快地知道集装箱的进出。

    我正在努力寻找一个坚实的理由来留住尤里卡。

    1 回复  |  直到 6 年前
        1
  •  5
  •   so-random-dude    7 年前

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

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

    以下是在库伯尼特斯的背景下对这个问题的回答

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

    引用相关部分

    在Kubernetes平台中,使用Eureka(或领事/动物园管理员) 服务发现的其他服务注册中心)是一种过度杀戮;你 可以使用Kubernetes服务实现相同(可以说)的功能 (+kube DNS插件),它将充当可引用的IP地址和负载 用于临时POD的平衡器(非客户端)。阅读此 [文章][1]作者:Christian Posta。如果你想推荐你的服务 其名称而不是IP地址将KubeDNS(kubernetes插件)添加到 您的群集。

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

    编辑

    既然你说了,

    在Rancher中,如果服务名为“foo Service”,则它被用作 牧场主内部网络中的VIP,因此与上面显示的URL相同 也可以工作,sans Eureka。

    此外,如果有多个容器支持一项服务,Rancher将 在它们之间实现负载平衡。

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