0

我有以下情况:用户使用 PC 登录 ASP.NET MVC4 应用程序。此应用程序在负载平衡器后面的多个 IIS 服务器上运行。在此之后,在服务器和客户端之间建立 SignalR 连接。当用户登录到这个主应用程序时,可以使用平板电脑或手机(可以是不同的网络)添加第二个屏幕。在这里,用户还登录并获得 SignalR 连接。

在服务器上的应用程序中发生了一种事件,该事件必须通过 SignalR 发送到两个设备。因此,需要将两个设备连接到同一个 IIS 服务器。

我根本没有使用负载均衡器的经验。我可以强制负载均衡器使用多个设备的一个用户始终使用其所有设备路由到同一台服务器吗?如果是这样,推荐使用哪种负载均衡器?

4

1 回答 1

0

一些负载均衡器可以通过使用 cookie 来管理亲和性。您可能能够摆脱对同一登录用户的所有连接使用相同的 cookie 值。我知道梭子鱼产品支持这种方法。我想其他人也会,你需要研究。

另一种方法是尝试回避此问题,并允许通过任何 IIS 实例连接到您的集线器,并让任何 IIS 实例能够为请求提供服务。如果这意味着在实例之间共享某些信息,那么您可以使用共享缓存(AppFabric、NCache、MemCached)作为实现此目的的一种手段。这种方法可以让您在整个农场中更好地分配负载。

于 2013-06-10T12:48:22.873 回答