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
负载均衡器的高可用性通常使用虚拟 IP 地址(VIP) 协议来实现,该协议允许多个主机(即负载均衡器)以几种可能的方式之一(主动/被动、主动/主动的变化)回答一个公共 IP 地址.
有很多这样的协议,我在常规负载均衡器中看到的最多的是VRRP和NLB(以及设备中许多不起眼的黑盒协议)。扩展到路由器和防火墙,您可能还会遇到CARP、HRSP、GLSP等。
与 DNS 负载平衡相比,此策略具有许多优点,后者是一种更简单的策略(并且在另一个答案中进行了处理)。
例如,DNS 负载平衡有以下负担:
为 HA 使用虚拟 ip 协议可以选择实现,例如:
只有您知道哪种策略和协议最适合您的场景。