使用两个负载均衡器是否不需要第三个负载均衡器?

使用两个负载均衡器是否不需要第三个负载均衡器?

为了在两个负载均衡器之间分配流量,是否必须有第三个负载均衡器来执行分配?这难道不会违背使用两个负载均衡器来防止单点故障的想法吗?

答案1

有很多方法可以将负载分散到负载均衡器的上游。两种常用的方法是 DNS 轮询和 Anycast IP。

DNS 循环调度涉及为给定条目设置多条记录(即每个 LB),并按循环调度顺序返回这些记录。因此,负载大致分布在每个负载均衡器上。话虽如此,这是一种幼稚的方法,有许多缺点。

另一种选择是让任意播 IP 路由到多个数据中心内的多个负载均衡器。这种设置更复杂,但允许更精细的控制。

Google 在此发表了一篇关于全局负载平衡以及每种方法的局限性的精彩文章:https://landing.google.com/sre/book/chapters/load-balancing-frontend.html

答案2

也许吧。取决于设计。

首先要担心的是负载平衡器背后可能存在相对脆弱的单点故障。尽量做到拔掉任何电源、网络或存储电缆都不会造成重大服务中断。或者摧毁任何单个虚拟机(如果您喜欢云)。

手动主动被动不会自动决定事情的走向。更新 DNS 以指向您的辅助系统,仅此而已。

名称 name 的多个 DNS 记录应在它们之间进行循环平衡。但客户端会根据自己的意愿进行操作,因此几乎无法控制他们选择哪个记录或缓存结果的时间。

任播流量将通过网络路由进入机柜。这可能只在两个宣传 IP 的站点之间,如果您是大型 CDN,则可能在数十个站点之间。您只需要 IP 路由,而不是任何一台设备。(假设您的 IP 网络没有 SPOF!)但您无法控制每个请求在互联网上的去向,因此最适合使用 DNS 等无状态协议。

Enterprise 全局站点负载平衡产品声称,您可以将一个应用交付控制器放在一个数据中心,将第二个放在另一个数据中心,并在两个数据中心之间进行平衡。第三个控制器更像是集群中的另一个节点,而不是链接在更多负载平衡器前面的独立负载平衡器设备。

相关内容