我有以下情况:
我需要部署一个 Windows 服务,用于侦听 TCP 端口上的传入请求(基本上是 WCF 服务)。我有一个高可用性要求 - 该服务必须部署在两台服务器上,并且如果服务在一台服务器上停止(仅服务停止,而不是整个服务器停止),则所有请求都必须重定向到第二台服务器。对我来说,这看起来像是一个基本的故障转移场景。
如何在 Windows Server 2003 上实现此目的?我应该使用 Microsoft 群集服务还是网络负载平衡?重要的是,交换服务器的过程不应涉及客户端(客户端必须仅看到单个地址/单个主机或域名)。
提前感谢你的帮助。
答案1
使用 MSCS。原因如下:
后端集群(MSCS)是集群服务的唯一方法(高可用性要求),但 NLB 和 MSCS 都允许您集群 IP 地址(在 TCP 端口上监听)。
此配置可让您同时实现这两个目标。我唯一要提醒的是,在前端(即分发网站或类似的东西)使用 MSCS 集群通常不是最佳实践;它通常用于后端文件服务器集群、sql/exchange 集群等。
答案2
NLB - 负载平衡并将无效服务从公共地址中移除。这正是它的目的。
答案3
使用网络负载平衡。最好是硬件。一些(或所有或大多数)设备可以通过发送 http 请求来监控服务器的运行状况。甚至可以发布 xml 并检查是否有正确的响应。