如果您用尽了与将请求代理到后端服务器的 haproxy 服务器的公共网络连接(例如 1 Gbps),那么您可以使用什么选项来扩展它?
由于所有请求流量都通过 haproxy,如果您的端口上没有剩余带宽,如何扩展此设置?
答案1
您添加另一个端口。
假设您现有的网络看起来像 N 个后端服务器前面的一个 HAProxy 盒前面的一个公共 IP 地址。您运行的吞吐量达到(或者更好,接近 1 Gbps),但您的后端服务器仍然健康,资源充足。
下一步是获取第二个公共 IP 地址和集群前面的另一台 HAProxy 机器。添加一些全局服务器负载平衡以某种可配置的方式将流量发送到两个前端 HAProxy 盒中的每一个。
我们通过管理自己的凯塔玛哈希基于强力DNS服务器。还有提供可编程 DNS 的 DNS 服务根据地理位置或其他标准的回应。
答案2
假设您没有办法获得更快的上行链路或扩展现有的 HAProxy 设备,那么就扩展到多个。
您可以通过几种不同的方式在它们之间分配负载:
- DNS 轮询。这涉及
A
向现有 DNS 名称添加额外记录,并有望将请求负载半均匀地分配给记录的成员A
。 - 选择性 DNS 应答。根据条件使用不同的答案响应不同的 DNS 请求 - 它可以简单地强制执行循环分发,或者,如果您的应用程序可以有效地扩展到新位置,它可以使用给定客户端的最近可用应用程序实例来回答查询(地理感知 DNS)。
- BGP 任播。一般认为,对于会话感知通信来说,这不是一个好主意,因为拓扑变化可能会破坏 TCP 会话,从互联网拓扑角度来看,这是将流量推送到靠近用户的应用程序部署的另一种方法。