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