繁体   English   中英

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

[英]Client side load balancing (Ribbon) and Service Discovery (Eureka) on PaaS cloud (PCF)

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

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

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

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

考虑到这一点,是否可以在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-service,因此可以在https://myapp-service.cfapps.io下使用,那么在以下位置设置服务发现服务(例如Eureka)有什么好处? PaaS云?

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

当您开始获得很多服务时,“手数”是任意多的,要管理起来就很麻烦。 当您达到这一点时,使用服务注册表将使生活更轻松。 并不是说您不能在一个应用程序/一个服务场景下使用服务注册表,这可能并不是一个很大的优势。

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

值得一提的是,如果您使用的是最新版本的CF,则实际上是通过DNS提供了平台提供的服务发现。 如果可用,这也可用于查找服务实例。 有关详细信息,请参见此处。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM