我正在使用 Windows 网络负载平衡来确保我的应用程序可用,即使其中一台服务器发生故障。
问题是它只检测整台机器是否宕机。有时只有一个服务宕机,但其主机正常运行,那么请求仍然会发送到这个端点,但它不会响应。
有没有什么解决方案可以解决这个问题?有没有办法配置 Windows NLB 或第三方 NLB 来检查特定端口的状态?
答案1
为什么不使用故障转移群集?NLB 只是网络负载平衡,根本不涉及应用程序级容错。
答案2
我为此使用的(当然它不是特定于 Windows 的)是一个位于集群前面的硬件负载平衡器。
我有一双 Kemps (http://www.kemptechnologies.com),服务指向它们。它们将请求从源转发到它们后面的服务器池成员之一。查询的服务器顺序可以通过多种方式之一来决定。
Kemp 并不是唯一一家这样做并使用这种方法的提供商。大多数基于硬件的负载平衡器的工作方式相同。这是提供高可用性服务的最可靠方式,无需花费数万甚至数十万美元的网络基础设施。