Windows NLB工作得很好,当计算机死机时,可以将其从集群中删除。
但是,如果应用程序死亡,但服务器仍然正常工作会发生什么?你如何解决这个问题?
谢谢 (Xièxiè)
Windows NLB工作得很好,当计算机死机时,可以将其从集群中删除。
但是,如果应用程序死亡,但服务器仍然正常工作会发生什么?你如何解决这个问题?
谢谢 (Xièxiè)
不使用NLB。
硬件负载均衡器通常具有可配置的“探测”功能,以确定服务器是否响应请求。这可以通过访问真实的应用程序端口/ URL或一些特定的“健康检查”URL进行,如果应用程序健康,则返回该URL。
其他选项可以查看队列/响应请求所需的时间。
思科这样描述:
The Cisco CSM continually monitors server and application availability using a variety of probes, in-band health monitoring, return code checking, and the Dynamic Feedback Protocol (DFP). When a real server or gateway failure occurs, the Cisco CSM redirects traffic to a different location. Servers are added and removed without disrupting service—systems easily are scaled up or down.
从这里开始:http://www.cisco.com/en/US/products/hw/modules/ps2706/products_data_sheet09186a00800887f3.html#wp1002630(将其翻译成中文)
假定在Windows NLB中,有一些编程方法可以设置节点的权重吗?节点应该进行自我监控,如果有问题(例如某个节点磁盘空间不足),则将其权重设置为零,使其不再接收任何流量。
然而,这需要仔细设计并进行进一步的人工监控,以确保您不会出现一个错误导致整个集群宣布停机的情况。
在网络负载平衡中,你不能真正希望应对“拜占庭将军”情况;一个适当损坏的节点可能会认为它没问题,看起来没问题,但实际上完全无法做任何实际工作。诀窍在于尽量减少这些情况在生产中发生的可能性。
网络应用有多个健康检查级别。
我的NLB体验可能不完整,但我会描述我知道的。NLB可以做1和2。使用自定义编码,您可以添加其他难度级别。使用某些网络架构,这可能非常困难。
大多数来自厂商如 Cisco 或 F5 的硬件负载均衡器可以轻松配置为执行 3 或 4。等级 5 测试仍需要自定义编码。
We start in the situation where all nodes are part of the cluster but inactive. We run a custom service monitor which makes a request on the service locally via the external interface. If the response was successful we start the node (allow it to start handling NLB traffic). If the response failed we stop the node from receiving traffic.
Darron所描述的所有中间步骤都是无关紧要的。我们唯一关心的是是否起作用。如果机器无法访问,则其余的NLB集群将将其视为失败。 Translated back to English: All of the intermediate steps described by Darron are irrelevant. The only thing we care about is whether it works or not. If the machine is inaccessible, the rest of the NLB cluster will treat it as failed.