使用Sticky Sessions是否支持横向扩展方案?是否有人使用Sticky Sessions部署SignalR并且有任何意外问题吗?
我们正在调查SignalR,以实现负载均衡的基于广播的项目(类似于股票代码),其中消息延迟是一个重要因素。通过Scale Out文档阅读后,Backplane模型似乎可能会在消息中引入显着的延迟,尤其是在消息速率很高时。
我发现一些参考文献暗示它会产生一些副作用,但不会产生可靠性和性能影响。
谢谢!
答案 0 :(得分:2)
如果您使用没有背板的SignalR,任何客户端方法调用将只能到达直接连接到进行调用的服务器的客户端。
如果您只使用Clients.Caller
,这可能没问题,因为调用者应该总是在给定粘性会话的情况下回到同一服务器。如果您使用Clients.All
,Clients.Others
Clients.Client(connectionId)
,Clients.User(userName)
,Clients.Group(groupName)
等,这可能会成为一个问题......在这些情况下,任何客户都是连接到不同于执行Clients...
代码的服务器的服务器将无法接收调用,无论客户端是否连接到同一个Hub,具有正确的connectionId等...