0

我将两个 VM(win 2012)设置到一个云服务中。每个 VM 运行一个简单的 TCP 服务,该服务接受连接并在客户端希望的时间内保持连接。

问题是我无法从同一个客户端(当然是不同的 TcpClient 对象)连接到端点两次。

这在不运行负载平衡时是可能的。

当服务器尝试连接到自身时也会出现问题(由于一些懒惰的编码)。第一次,没事。第二次连接失败并显示“服务器未响应”消息。

我的问题很简单:是否可以从同一主机多次连接?

4

2 回答 2

0

如果需要,您可以在每个单独的虚拟机上设置特定端口(基本上是将流量转发到特定虚拟机的端点)。Michael Washam 在他的帖子中说明了这一点。您将创建端点,但不会创建负载平衡端点。然后,您的客户端应用程序将需要选择要连接的服务器(基于端口号)。也许是随机选择?

相反,如果您正在寻找“粘性服务器”解决方案,其中客户端连接到单个端口,负载平衡到其中一个 VM,然后停留在该 VM 上:您需要使用类似 haproxy , nginx 等在自己的虚拟机中运行,根据您设置的规则将流量转发到各个虚拟机。

于 2012-12-21T12:05:56.143 回答
0

您的问题是有效的,并且有利于其他找到它的人:

无法连接到同一台服务器,因为 Azure 软件负载均衡器使用循环算法。因此无法保证每个请求将连接到哪个服务器。

http://www.windowsazure.com/en-us/manage/windows/common-tasks/how-to-load-balance-virtual-machines/

“Windows Azure 为公开定义的云服务端口提供网络流量的循环负载平衡”

这就是为什么另一个答案中的单个端口方法是强制与特定服务器通信的唯一方法。

于 2013-06-30T17:28:31.470 回答