我们在ASP.NET中使用DNN在IIS上构建了一个站点.目前,我们尝试为两台服务器配置网络负载平衡.服务托管服务提供商告诉我们这已经足够了,但我们似乎已经碰壁了:
>网络负载平衡仅转发来自其公共IP的请求,它不检查服务器的可用性
>如果服务器出现故障,50%的请求将看到“服务器不可用”,直到我们从负载平衡配置中手动删除服务器
>我没有看到用两台服务器配置这个没有这个问题的方法
通过三向负载平衡(即Web场),单个系统可以检查哪些服务器可用.如果服务器出现故障,它会将请求转发给其他服务器.
上面是网络负载平衡限制的正确假设,导致经典的Web场只作为解决方案,还是主机提供商可以配置什么来防止这种行为,让我们只坚持两个系统?
解决方法
实际上你已经达到了NLB的一个经典局限.
Windows NLB群集只能检查节点本身是否可用,并且无法检查实际应用程序是否仍在运行.最终,您需要对应用程序进行某种类型的运行状况检查,这可以通过物理负载均衡器或软件负载均衡器(如Microsoft
Application Request Routing (ARR))来完成.
另一个有点新的替代方案是基于云的负载均衡器,例如Rackspace的产品.这使您可以获得物理负载均衡器的许多功能,而无需实现物理硬件的成本.
希望有所帮助.
编辑:
NLB有一种方法可以执行运行状况检查,但是,它仍然需要第三台服务器. System Center Operations Manager具有可以监视应用程序的管理包.有关这方面的详细信息可以在here找到.如果您要解决添加此类问题的麻烦,您还可以查看可以执行必要运行状况检查的实际负载均衡器的好处.