我们有一个使用SignalR来更新客户端UI的应用程序,目前该应用程序托管在我们维护的IIS上,我们的客户端直接向我们发送。
然而,我们正在将其整合到一个企业范围的框架中,该框架将容纳我们的应用程序,我们将继续托管应用程序,但登陆我们页面的任何人都将通过我们被告知的负载平衡“每个区域2个网关服务器设置为主动/主动与粘性会话”的策略
我的问题是,当SignalR决定选择长轮询作为传输协议并以某种方式断开连接时,我们会遇到任何问题吗?
很抱歉,我对Load Balancing的主题并不了解。
任何帮助都非常赞赏。
答案 0 :(得分:5)
好吧,假设你真的使用“粘性”会话,那么连接被删除应该无关紧要,因为下一个请求应该由于粘性而返回到同一个底层服务器。毕竟,粘性会话都是关于在几个请求的过程中保持HTTP的标准请求/响应模型返回到同一服务器。因此,由于长轮询仅仅是具有延长/流式响应的标准请求,因此它应该与标准的粘性会话实现完美集成。
您需要考虑的是:如果因失败或维护而丢失服务器A会发生什么?如果您没有使用扩展消息总线解决方案(Redis,Azure SB),则在从服务器A转换到服务器B时可能会丢失/丢失消息。