多语言和客户端负载平衡
Polyglot and Client Side Load Balancing
通过 Cloud Foundry 功能,"Polyglot" 用于集成服务发现和服务容器之间通过内部路由的直接通信,负载平衡如何工作? Cloud Foundry 是否负责负载平衡?有没有办法利用客户端负载平衡,比如在支持多语言的通信之上的功能区?
当您使用容器到容器网络时...
- 如果您直接连接到 IP 地址,则不会进行负载平衡。
- 如果您使用该平台的基于 DNS 的多语言服务发现,那么您将通过循环 DNS 获得有限的负载平衡。
通过多语言服务发现功能,DNS 响应会轮换,以便 IP 在响应中以不同的顺序列出。您可以 observe/validate 通过执行以下操作:
- 将内部路由映射到应用程序
- 将同一个应用扩展到两个或更多实例
- 运行
cf ssh
到任何应用容器
- 容器内,运行
dig <internal-route>
重复最后一步任意次数。您应该看到来自 DNS 的响应以不同的顺序返回 IP 地址(它们是轮换的)。
也就是说,没有什么可以阻止您使用不同形式的负载平衡,无论是您部署的反向代理应用程序还是像 Ribbon 这样的客户端。
通过 Cloud Foundry 功能,"Polyglot" 用于集成服务发现和服务容器之间通过内部路由的直接通信,负载平衡如何工作? Cloud Foundry 是否负责负载平衡?有没有办法利用客户端负载平衡,比如在支持多语言的通信之上的功能区?
当您使用容器到容器网络时...
- 如果您直接连接到 IP 地址,则不会进行负载平衡。
- 如果您使用该平台的基于 DNS 的多语言服务发现,那么您将通过循环 DNS 获得有限的负载平衡。
通过多语言服务发现功能,DNS 响应会轮换,以便 IP 在响应中以不同的顺序列出。您可以 observe/validate 通过执行以下操作:
- 将内部路由映射到应用程序
- 将同一个应用扩展到两个或更多实例
- 运行
cf ssh
到任何应用容器 - 容器内,运行
dig <internal-route>
重复最后一步任意次数。您应该看到来自 DNS 的响应以不同的顺序返回 IP 地址(它们是轮换的)。
也就是说,没有什么可以阻止您使用不同形式的负载平衡,无论是您部署的反向代理应用程序还是像 Ribbon 这样的客户端。