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



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

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

考虑到这一点,是否可以在 PaaS 云中使用客户端负载均衡器(如功能区(,以便应用的客户端将直接访问运行应用的实例,而不是负载均衡器?如果是,有什么好处?

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

考虑到这一点,是否可以在 PaaS 云中使用客户端负载均衡器(如功能区(,以便应用的客户端将直接访问运行应用的实例,而不是负载均衡器?如果是,有什么好处?

你当然可以。 如果你在 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,因此在 PaaS 云中设置服务发现服务(例如 Eureka(https://myapp-service.cfapps.io 下可用,那么在 PaaS 云中设置服务发现服务(例如 Eureka(有什么好处吗?

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

当你开始获得大量服务时,其中"批次"是一个任意大的数字,这管理起来很痛苦。 当您达到这一点时,使用服务注册表将使生活更轻松。 并不是说您不能将服务注册表与一个应用程序/一个服务方案一起使用,它只是可能没有那么大的优势。

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

值得一提的是,如果您使用的是最新版本的 CF,那么实际上可以通过 DNS 提供平台提供的服务发现。 如果可用,这也可用于查找服务实例。 详情请看这里。

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

最新更新