signalr - SignalR (v2+) 是否适用于没有背板的粘性 session ?

标签 signalr load-balancing

使用粘性 session 是否支持横向扩展方案?是否有人使用粘性 session 部署了 SignalR,是否有任何意外问题?

我们正在研究 SignalR 的负载平衡、基于广播的项目(类似于股票代码),其中消息延迟是一个重要因素。在阅读了 Scale Out 文档之后,似乎背板模型可能会在消息中引入显着的延迟,尤其是在消息速率很高的情况下。

我发现一些引用资料暗示它会产生一些副作用,但不会影响可靠性和性能。

谢谢!

最佳答案

如果您在没有背板的情况下使用 SignalR,则任何客户端方法调用都只能到达直接连接到进行调用的服务器的客户端。

如果您只使用 Clients.Caller,这可能没问题因为在给定粘性 session 的情况下,调用者应该始终返回到同一台服务器。如果您使用 Clients.All,这可能会成为一个问题。 , Clients.Others Clients.Client(connectionId) , Clients.User(userName) , Clients.Group(groupName)等等...在这些情况下,任何连接到服务器的客户端都不同于执行 Clients... 的客户端。无论客户端是否连接到同一个集线器,是否具有正确的 connectionId 等,代码都不会收到调用...

关于signalr - SignalR (v2+) 是否适用于没有背板的粘性 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648417/

相关文章:

c# - SignalR 轮询并不总是返回准确的数据库结果

javascript - SignalR 问题 : Cannot connect to Hub class

c# - 我们可以强制 SignalR 使用长轮询连接方法吗

java - Spring BasicAuthenticationFilter 和 UsernamePasswordAuthenticationFilter 与实际应用程序位于不同的服务器上

c# - 如何禁用 ASP.NET Web 服务客户端请求的保持事件状态?

MongoDB 复制集和 ELB

azure - ARM 脚本无服务器 SignalR 以及函数应用程序的上游设置

asp.net-mvc-4 - 更新到 v.1.0.1 后 SignalR 在 AppHarbor 上收到 403 (Chrome)

asp.net - 如何为硬件故障设置 Redis?

azure - 本地负载平衡 Windows Azure 实例