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。把程序運行一下,我們會得到以下這些表
redis來做底板
需要下載nuget包 Microsoft.AspNet.SignalR.Redis
同樣在startup類中進行配置,
GlobalHost.DependencyResolver.UseRedis("localhost", 6379, string.Empty, "signalR");