答案1
我在拥有 10 台以上服务器的生产环境中使用 NLB 和硬件负载均衡器已有数年经验。下面简要列出了我认为 NLB 与硬件负载均衡器的优缺点:
- NLB 使用软件进行负载平衡。该软件占用少量 CPU。硬件设备卸载所有 CPU(有时甚至更多 - 例如 SSL 卸载)。
- NLB 只允许一台服务器每张网卡参与一个负载均衡集,因此如果希望服务器参与多个不同的负载均衡集,则所有服务器都必须具有相同的服务(可以有多个目标 IP 地址和端口,但全部同一组中的服务器必须具有相同的服务)。硬件设备在这方面通常更灵活,并且还具有其他一些不错的功能。
- NLB 相当可靠,但我们每隔一个月就会遇到一次问题,它会进入奇怪的状态,无法正确进行负载平衡。硬件设备通常更可靠。
- 管理 NLB 必须从同一 LAN 上的服务器进行。没有基于 Web 的配置。
- NLB 需要用所有传入数据包淹没网络交换机,或者需要网络交换机对多播数据包有特殊支持。
- NLB 本质上可以容忍服务器的彻底故障(当然,除非它们全部发生故障),而硬件解决方案需要两个单独的设备并正确配置,以减轻单一设备故障的影响。
- NLB 只关心设备是否连接到网络,而不关心您的应用程序是否实际运行。硬件负载平衡器通常允许进行应用程序级测试。您可以编写外部软件来检查服务器上的应用程序并以编程方式将其从 NLB 中删除,但这需要更多工作,并且可能还需要容错能力,这可能非常棘手。