Asp.Net SignalR 集群会遇到的问题


SignalR集群

当客户端数量上来,一台server自然是吃不消的。多个server集群部署是必然的解决方案。再通过负载均衡,嗯 简直是完美。但是问题也接踵而来。每个server只能管理到当前server下的client,比如 server1要给连接在server2的client发一条消息是实现不了的。

这时我们需要“底板”中间件,什么叫底板 ,也就是在server的集群上再加一层,由底板来维护这些server,像上面server1给连接在server2的client发消息,底板会告诉server2给client发一条消息。就达到了我们需要的效果

常用的有Redis与SqlServer,其实 Redis性能是最优的。

SqlServer来做底板

需要下载nuget包 Microsoft.AspNet.SignalR.SqlServer

然后在startup类中进行配置,也是非常简单的,数据库是signalR。把程序运行一下,我们会得到以下这些表

image

image

 

redis来做底板

需要下载nuget包 Microsoft.AspNet.SignalR.Redis

同样在startup类中进行配置,

GlobalHost.DependencyResolver.UseRedis("localhost", 6379, string.Empty, "signalR");

image


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM