我有一个第三方现成的 Windows 应用程序,需要连接到安装在另一台服务器(实际上在 Windows 7 Professional 上运行)上的 Web 服务(IP 地址或 URL)。
我的用户希望我实施一个故障转移解决方案,如果主 Web 服务器无法响应,则第三方应用程序将自动连接到备份服务器。
有没有一种方法可以让我实现这一点而无需实现集群(硬件或 Windows NLB)?
更新:请注意 - 我不希望在服务器端实现负载平衡器。
答案1
reverse proxy
您可以在 上实现一个client
,然后将其连接到您的backend servers
。当一个服务器发生故障时,它应该能够重定向到正在运行的服务器。
答案2
当然,Windows NLB
并且hardware loadbalancers
(例如负载均衡器) 就是为这项工作而设计的。
您可以在那里找到主要使用 Linux/Unix 的免费替代方案。
答案3
有没有办法让我实现这个而不实现集群
不,你的问题不成立,因为它是在说“我需要更换奔驰车的轮胎”。这是一辆汽车。Web 服务故障转移与 Web 服务无关,我们在这里讨论的基本上是 TCP 连接。
问题在于,对于故障转移,对特定 IP 做出反应的机器必须改变 - 而无需改变 IP(因为导致故障转移的 DNS 查找会被缓存,如果有的话,则会在客户端机器上进行,并且故障转移必须快速发生,因此缓存会造成阻碍)。
因此,您需要某种集群解决方案。这是问题的本质。这始终是软件 - 绝不是硬件,没有硬件可以做到这一点。看,您购买的设备也运行软件 ;)
NLB 对此来说已经足够完美了。一组机器有一个特殊的 IP,它们都响应该 IP 来为 Web 服务提供服务,并且它们有一个不错的故障转移机制。
抱歉,没有办法解决这个问题。有“穷人”故障转移(DNS 更新),但正如我所说 - 客户端缓存也存在时间问题。