在NLB中服务器处于活动状态时检测死应用程序

时间:2008-11-14 16:12:09

标签: windows load-balancing cluster-computing

Windows NLB运行良好,并在计算机耗尽时从群集中删除计算机。

但是如果应用程序死了但服务器仍能正常工作会发生什么?你是怎么解决这个问题的?

由于

4 个答案:

答案 0 :(得分:1)

不使用NLB。

硬件负载平衡器通常具有可配置的“探测”功能,以确定服务器是否正在响应请求。这可以通过访问真实的应用程序端口/ URL,或仅在应用程序运行正常时返回的某些特定“健康检查”URL。

其他选项可以查看响应请求所需的队列/时间

思科这样说:

  

Cisco CSM持续监控服务器和应用程序的可用性   使用各种探头,带内   健康监测,返回代码   检查和动态反馈   协议(DFP)。当真正的服务器或   发生网关故障,Cisco CSM   将流量重定向到其他流量   地点。添加服务器和   删除没有中断   服务系统很容易扩大规模   或者下来。

(从这里:http://www.cisco.com/en/US/products/hw/modules/ps2706/products_data_sheet09186a00800887f3.html#wp1002630

答案 1 :(得分:0)

据推测,使用Windows NLB,有一些方法可以通过编程方式设置节点的权重吗?节点应该自我监控,如果存在某些问题(例如特定节点的磁盘空间不足),请将其权重设置为零,以便不再接收流量。

但是,这需要仔细设计并进行进一步的人工监控,以确保您不会遇到一个故障导致整个群集自行宣布的情况。

你真的不希望在网络负载平衡中处理“拜占庭式”的情况;一个适当破碎的节点可能认为它很好,看起来很好,但完全无法做任何实际的工作。诀窍是尽量减少这些情况在生产中发生的可能性。

答案 2 :(得分:0)

网络应用程序有多种级别的运行状况检查。

  1. 是服务器机器吗?
    • 是应用程序(服务)正在运行吗?
    • 是接受网络连接的服务吗?
    • 服务是否对“你没问题”请求做出了适当的回应吗?
    • 服务是否真的有效? (这也将检查您正在探测的服务背后的后端系统)
  2. 我对NLB的经验可能不完整,但我会描述我所知道的。 NLB可以做1和2.使用自定义编码,您可以添加其他级别,具有不同的难度。对于某些网络架构,这可能非常困难。

    Cisco或F5等供应商的大多数硬件负载平衡器都可轻松配置为3或4. 5级测试仍需要自定义编码。

答案 3 :(得分:0)

我们从所有节点都是集群的一部分但不活动的情况开始。 我们运行一个自定义服务监视器,它通过外部接口在本地发出请求。如果响应成功,我们启动节点(允许它开始处理NLB流量)。如果响应失败,我们会阻止节点接收流量。

Darron描述的所有中间步骤都是无关紧要的。它是否有效是我们唯一关心的事情。如果机器无法访问,则NLB群集的其余部分会将其视为失败。