我遇到以下情况:用户使用PC登录ASP.NET MVC4应用程序。此应用程序在负载均衡器后面的多个IIS服务器上运行。在此之后,建立服务器和客户端之间的SignalR连接。当用户登录到此主应用程序时,可以使用平板电脑或手机(可以是不同的网络)添加第二个屏幕。在这里,用户还登录并获得SignalR连接。
在服务器上的应用程序中发生一种事件,这些事件必须通过SignalR发送到两个设备。因此,需要两个设备都连接到同一个IIS服务器。
我根本没有负载均衡器的经验。 我是否可以强制使用多个设备的负载均衡器一个用户始终使用其所有设备路由到同一服务器? 如果是,建议使用哪种负载均衡器?
答案 0 :(得分:0)
某些负载均衡器可以通过使用Cookie来管理亲和力。您可以通过同一登录用户为所有连接使用相同的cookie值。 我知道Barracuda产品支持这种方法。我猜其他人也会,你需要研究。
另一种方法是尝试回避此问题,并允许通过任何IIS实例连接到您的集线器,并让任何IIS实例能够为请求提供服务。如果这意味着在实例之间共享一些信息,那么您可以使用共享缓存(AppFabric,NCache,MemCached)来实现此目的。 这种方法可以让您在整个农场中实现更好的负载分配。