【问题标题】:SignalR and Load Balancing With Active/Active Sticky SessionsSignalR 和负载平衡与主动/主动粘性会话
【发布时间】:2012-08-10 16:31:30
【问题描述】:

我们有一个使用 SignalR 更新客户端 UI 的应用程序,目前该应用程序托管在我们维护的 IIS 上,我们的客户直接与我们连接。

但是,我们正在将其集成到一个企业范围的框架中,该框架将容纳我们的应用程序,我们将继续托管该应用程序,但是任何登陆我们页面的人都会经历我们被告知的负载“每个区域的 2 个网关服务器设置为活动/活动和粘性会话”的平衡策略

我的问题是,当 SignalR 决定选择长轮询作为传输协议并且以某种方式断开连接时,我们会有什么问题吗?

抱歉,我对负载平衡这一主题一无所知。

非常感谢任何帮助。

【问题讨论】:

    标签: asp.net iis load-balancing signalr


    【解决方案1】:

    好吧,假设您真的在使用“粘性”会话,那么断开连接应该无关紧要,因为由于粘性,下一个请求应该返回到同一个底层服务器。毕竟,粘性会话都是为了在多个请求的过程中保持标准的 HTTP 请求/响应模型返回到同一台服务器。因此,由于长轮询只不过是具有延长/流式响应的标准请求,因此它应该与标准粘性会话实现很好地集成。

    您需要考虑的是:如果您因为故障或维护而失去服务器 A,会发生什么?如果您没有使用横向扩展的消息总线解决方案(Redis、Azure SB),您可能会在从服务器 A 转换到服务器 B 时丢失/错过消息。

    【讨论】:

    • 感谢您的解释,关于您的问题,如果我要求 SignalR 在“断开连接”时重新连接,这仍然是一个问题吗?当然,当它重新连接时,转换应该已经完成​​了。
    • 如果负载均衡器在做它的工作,你应该重新连接到服务器 B。我只是说你可能会丢失一个应该从服务器 A 发送的重要消息,但不是t 因为它在发送之前死亡/脱机。如果它只是某种聊天应用程序,没什么大不了的。
    • 明白了!是的,这是一个值得与相关部门一起调查的好点,因为我们不能承受丢失任何消息的代价。感谢您的帮助:-)
    猜你喜欢
    • 2012-03-12
    • 2011-09-23
    • 2019-01-21
    • 2016-10-27
    • 2012-04-25
    • 2011-02-11
    • 1970-01-01
    • 2018-04-05
    • 2021-09-06
    相关资源
    最近更新 更多