代码之家  ›  专栏  ›  技术社区  ›  Adam Siemion

PaaS云(PCF)上的客户端负载平衡(Ribbon)和服务发现(Eureka)

  •  1
  • Adam Siemion  · 技术社区  · 8 年前

    目前,我们将我们的应用程序部署到Pivotal Cloud Foundry(PCF),它在平台即服务(PaaS)模型中运行。

    这意味着无论何时我们将应用程序部署到PCF,PCF都会自动(除了它执行的其他操作外)设置一个负载平衡器,将请求转发到它自动提供的所需数量的实例。

    考虑到这一点,是否可以在PaaS云中使用客户端负载平衡器(如Ribbon),以便应用程序的客户端直接接触到运行应用程序的实例,而不是负载平衡器?如果是,有什么好处?

    还有一个相关问题,如果我的所有服务都遵循相同的命名约定,例如:。 myapp-service 因此可在 https://myapp-service.cfapps.io 在PaaS云中设置服务发现服务(例如Eureka)有什么好处吗?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Daniel Mikusa    8 年前

    考虑到这一点,是否可以在PaaS云中使用客户端负载平衡器(如Ribbon),以便应用程序的客户端直接接触到运行应用程序的实例,而不是负载平衡器?如果是,有什么好处?

    你当然可以。如果您在PCF上使用映射到应用程序的路由,那么您只需要有一个客户端负载平衡器,其中有一台服务器,这样就不会真正增加任何好处。

    如果您使用客户端负载平衡器和Cloud Foundry的容器到容器网络,您将看到更多的好处。使用C2C,您可以直接与其他应用程序对话。在这种情况下需要注册表,以便您可以找到您的服务应用程序。

    这篇博文介绍了使用SCS的一个基本示例&C2C(适用于PWS,但应适用于具有C2C的任何PCF环境)。

    https://content.pivotal.io/blog/building-spring-microservices-with-cloud-foundrys-new-container-networking-stack

    还有一个相关问题,如果我的所有服务都遵循相同的命名约定,例如myapp服务,因此在 https://myapp-service.cfapps.io 在PaaS云中设置服务发现服务(例如Eureka)有什么好处吗?

    我想问题是你的应用程序如何查找 myapp-service.cfapps.io ?如果您有一个使用一项服务的应用程序,那么使用URL配置该应用程序,或者通过env变量甚至用户提供的绑定服务传递该应用程序并不难。问题已解决。

    当您开始获得大量服务时,“lots”是一个任意大的数字,这将是一个难以管理的问题。当您达到这一点时,使用服务注册表将使生活更轻松。并不是说您不能将服务注册中心用于一个应用程序/一个服务场景,这可能并没有这么大的优势。

    如上所述,使用服务注册中心的另一个优势是C2C网络。在这种情况下,您需要一些东西来在容器网络上定位您的服务。SCS注册表将执行此操作。

    值得一提的是,如果您使用的是最新版本的CF,那么实际上可以通过DNS进行平台提供的服务发现。如果可用,还可以使用它来定位服务实例。详见此处。

    https://www.cloudfoundry.org/blog/polyglot-service-discovery-container-networking-cloud-foundry/

    推荐文章