Windows的软件负载平衡器

我正在寻找一个简单的Windows负载均衡解决scheme。

我有两台机器(比如说host0和host1),它们中的任何一台都托pipeTCP服务(所以它可以是host0或host1,但是不能同时host0和host1)。

host0拥有该服务的客户端。 您可以请我build议我以下负载平衡scheme:一旦客户端启动连接,负载均衡器尝试连接到host0和host1服务。 一旦主机回复之一,它将所有stream量路由到该主机。

更新0:

我正在看的一个可能的解决scheme是在客户机上写一个脚本,找出哪个主机正在运行服务并更新HOSTS文件。 我不太喜欢这个方法,因为它不够快。 所以任何build议都非常感激。

更新1:

看起来我可以写一个脚本,将运行netsh接口portproxy设置端口转发。 看起来这是比HOSTS文件更好的解决scheme。 是否有意义?

谢谢

你的服务真的不应该是一个GUI应用程序。 期。

无论如何,如果您的应用程序能够监听多个IP地址,则可以在此场景中使用的一种解决scheme是向“活动”服务器提供第二个地址,并让客户端连接到该服务器。 要进行故障转移,您需要将IP地址移到其他服务器,然后在该处启动应用程序。

这也可以通过使用具有单个IP地址的故障转移群集作为群集资源来自动执行,或者configuration为只处理应用程序的TCP端口stream量的NLB群集(并仅将其发送到实际打开该端口的主机)。 但我不知道故障切换解决scheme实际上是多么有用,但仍然需要手动启动应用程序。

您是否尝试过Microsoft的NLB(networking负载平衡)? 在那里你可以configuration两台服务器运行相同的服务,只是确保你的客户端连接到IP /名称的NLB集群,而不是特定的服务器…听起来像你有故障转移群集而不是?

我结束了一个小的自制应用程序,它打开两个主机并行的套接字连接,然后使用netsh接口portproxy设置端口转发到主机响应。 客户端使用netsh命令创build的端口连接到本地主机。 我通过客户机上的任务调度程序每30秒调用一次该应用程序。