SignalR (v2+) 是否适用于没有背板的粘性会话?

mcj*_*-sx 5 load-balancing signalr

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

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

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

谢谢!

hal*_*r73 2

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

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