2014-09-03 23 views
3

是否使用粘滞会话支持扩展方案?有没有人部署SignalR与粘滞会话,并有任何意想不到的问题?SignalR(v2 +)是否可以在没有背板的情况下使用粘滞会话?

我们正在调查SignalR的负载均衡,基于广播的项目(类似于股票行情),其中消息延迟是一个重要因素。在通过Scale Out文档阅读之后,似乎背板模型可能在消息中引入显着的延迟,尤其是当消息速率较高时。

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

谢谢!

+0

完美接受的问题。赞成将不公平和未评论的downvote归零。 – rcdmk 2014-09-03 15:44:20

回答

1

如果您在没有底板的情况下使用SignalR,则任何客户端方法调用将只能访问直接连接到调用服务器的客户端。

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

+0

谢谢,如果我们的场景是服务器向(大多数)SignalR用户组广播更新(类似于股票代码),我们应该可以吗?例如,如果我们有一个Windows服务连接到每个SignalR服务器并通过每个集线器进行广播。 – 2014-09-04 10:17:58

+1

假设你从每个服务器广播完全相同的消息,那可能会起作用。请记住,如果没有背板,您将无法与连接到另一台服务器的SignalR客户端进行通信。 – halter73 2014-09-04 17:45:12

+0

非常好,谢谢你澄清 – 2014-09-05 13:56:44

相关问题