多语言和客户端负载平衡

Polyglot and Client Side Load Balancing

通过 Cloud Foundry 功能,"Polyglot" 用于集成服务发现和服务容器之间通过内部路由的直接通信,负载平衡如何工作? Cloud Foundry 是否负责负载平衡?有没有办法利用客户端负载平衡,比如在支持多语言的通信之上的功能区?

当您使用容器到容器网络时...

  1. 如果您直接连接到 IP 地址,则不会进行负载平衡。
  2. 如果您使用该平台的基于 DNS 的多语言服务发现,那么您将通过循环 DNS 获得有限的负载平衡。

通过多语言服务发现功能,DNS 响应会轮换,以便 IP 在响应中以不同的顺序列出。您可以 observe/validate 通过执行以下操作:

  • 将内部路由映射到应用程序
  • 将同一个应用扩展到两个或更多实例
  • 运行 cf ssh 到任何应用容器
  • 容器内,运行dig <internal-route>

重复最后一步任意次数。您应该看到来自 DNS 的响应以不同的顺序返回 IP 地址(它们是轮换的)。

也就是说,没有什么可以阻止您使用不同形式的负载平衡,无论是您部署的反向代理应用程序还是像 Ribbon 这样的客户端。