簡體   English   中英

在 .NET 框架環境中使用 SignalR 橫向擴展多個 Redis 背板

[英]Scaling out MULTIPLE Redis backplanes with SignalR in a .NET framework environment

環境: .NET framework 4.8后端。 SignalR 用於一些消息傳遞。

問題:應用程序在單個服務器上運行,需要橫向擴展。 單點故障對可用性也非常不利。 需要更高的性能和可用性。

可能的解決方案:使用 Redis 背板。 這允許多個服務器子/發布到 Redis 背板,至少以這種方式允許水平擴展。

問題解決方案:有誤請指正: 如果單Redis背板上所有服務器都可靠,單點故障問題依然存在。 此外,單個背板的性能可能會在未來耗盡。

問題: Redis背板如何橫向擴展? 如何使用多個背板並確保它們的數據保持同步?

https://learn.microsoft.com/en-us/as.net/core/signalr/redis-backplane " Redis 集群是一種通過使用多個 Redis 服務器實現高可用性的方法。官方不支持集群,但它可能有用。”

https://learn.microsoft.com/en-us/as.net/signalr/overview/performance/scaleout-with-redisSignalR Redis 的橫向擴展不支持 Redis 集群。

SignalR與多個Redis背板一起使用是否存在一些難題? 如果這是一個糟糕的主意,還有哪些其他選項可以替代 Redis 或 SignalR?

SignalR 為 .NET 框架現已折舊。 如果您想“面向未來”解決方案,我建議將 .NET 核心切換到 SignalR。 Core也支持Azure背板但不再支持SQL背板。

做你想做的事情的一種方法是讓每台服務器監控 Redis 背板是否是我們,如果不是,則切換到另一個。 在我的實現中,每個 SignalR 服務器都通過背板向其他服務器發送消息,以便它們知道背板上有多少服務器以及背板正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM