是否可以使用多个负载平衡器将流量重定向到我的应用程序服务器?

use*_*827 13 domain-name-system nginx load-balancing haproxy high-load

我是负载平衡的新手,我想知道是否可以使用多个负载平衡器将流量重定向到我的应用程序服务器。我真的不明白这是怎么做到的。域名不应该与某个服务器的 IP 地址(在这种情况下是一个负载均衡器的 IP)一一匹配吗?如果每个负载均衡服务器的 IP 不同,那么两个负载均衡器(或 10 个负载均衡器或 50 或 100 个)如何接收请求?

fak*_*ker 15

使用循环 DNS 对于高可用性来说并不是那么好 - 如果一台服务器离线,客户端仍将尝试连接到它并等待超时。

还有其他方法可以实现这一点。
1) 主动/被动负载均衡器
基本上一个负载均衡器处理一个 IP 地址的所有流量。
如果该平衡器出现故障,则被动节点会跳入并接管 IP。
请记住,负载平衡器几乎只转发流量,因此对于中小型站点,这可以解决问题。

2) Active/Active 负载均衡器
在两个(或更多)负载​​均衡器上配置相同的流量 IP。
传入流量被发送到所有负载均衡器,但算法选择哪个均衡器应该响应,所有其他均衡器丢弃该流量。
简单来说,你有两个负载均衡器:
当请求的 IP 以偶数结尾时,负载均衡器 A 响应,否则负载均衡器 B 响应。

当然,您的基础设施必须支持这一点,并且由于流量被发送但被丢弃而存在开销。
更多信息,例如这里:http : //community.brocade.com/t5/SteelApp-Docs/Feature-Brief-Deep-dive-on-Multi-Hosted-IP-addresses-in-Stingray/ta-p/73867

  • @user3790827 在这种情况下,基础设施是网络设备,而不是服务器。 (2认同)

Eri*_*ikE 7

负载均衡器的高可用性通常使用虚拟 IP 地址(VIP) 协议来实现,该协议允许多个主机(即负载均衡器)以几种可能的方式之一(主动/被动、主动/主动的变化)回答一个公共 IP 地址.

有很多这样的协议,我在常规负载均衡器中看到的最多的是VRRPNLB(以及设备中许多不起眼的黑盒协议)。扩展到路由器和防火墙,您可能还会遇到CARPHRSPGLSP等。

与 DNS 负载平衡相比,此策略具有许多优点,后者是一种更简单的策略(并且在另一个答案中进行了处理)。

例如,DNS 负载平衡有以下负担:

  • dns缓存机制更新缓慢
  • 有限的负载平衡算法(通常只是循环)
  • 将负载均衡决策外包给客户端(通过缓存 dns 记录)
  • 当服务器(即负载平衡器)停止旋转时,服务队列的缓慢消耗(基于ISP 和客户端处理的dns 记录 TTL )
  • 负载平衡器故障时的缓慢故障转移

为 HA 使用虚拟 ip 协议可以选择实现,例如:

  • 在负载均衡器中选择负载均衡算法
  • 以服务器为中心的负载平衡决策(例如促进基于服务健康的措施和路由)
  • 当负载平衡器停止旋转时,服务队列的消耗会更快。
  • 负载平衡器故障时的即时故障转移

只有您知道哪种策略和协议最适合您的场景。