NCache SignalR 作为 ASP.NET Core 的高性能后端,支持实时 Web 应用程序在多服务器 Web 集群中线性扩展,避免性能瓶颈。实时 ASP.NET Core SignalR 应用程序依赖于跨服务器的消息分发来实现高频更新。此类应用程序包括在线游戏、实时财务仪表盘、协作白板、拍卖应用和社交媒体网络,以及其他以实时交互为关键的类似平台。为了确保在多服务器环境中实现无缝扩展,SignalR 依赖于后端机制来高效地分发消息。 NCache 提供强大且可扩展的 SignalR 背板 为了这个。
NCache 是一个意念波· 分布式缓存 该解决方案可与 ASP.NET Core SignalR 无缝协作,支持实时 Web 应用程序,在负载均衡的多服务器环境中运行,从而实现有效的可扩展性和性能提升。 NCache 还提供先进的 Pub/Sub 消息传递 帮助 SignalR 在多个服务器之间高效分发消息的功能。
您可以配置 ASP.NET Core 应用程序以利用 NCache 作为 SignalR 背板 实现高可扩展性和流畅的消息分发。集成 NCache SignalR 背板的配置非常简单,只需按照以下步骤进行配置即可:
添加 NCache SignalR NuGet 包到您的项目:
Install-Package AspNetCore.SignalR.NCache
修改你的 NCache 配置设置 应用设置.json 文件:
{
"NCacheConfiguration": {
"CacheName": "demoCache",
"EventKey": "chat",
}
}
修改 程序.cs 配置 SignalR 使用 NCache 作为背板:
using Alachisoft.NCache.AspNetCore.SignalR;
var builder = WebApplication.CreateBuilder(args);
// Bind NCache configuration section
builder.Services.Configure<NCacheConfiguration>(
builder.Configuration.GetSection("NCacheConfiguration"));
// Register SignalR with NCache backplane
builder.Services.AddSignalR().AddNCache(ncacheOptions =>
{
ncacheOptions.CacheName = builder.Configuration["NCacheConfiguration:CacheName"];
ncacheOptions. EventKey = builder.Configuration["NCacheConfiguration: EventKey"];
});
var app = builder.Build();
// Map your SignalR hub endpoint directly
app.MapHub<YourSignalRHub>("/your-hub");
app.Run();
如果您的 ASP.NET Core 应用程序流量很高,并且运行在负载均衡的多服务器 Web 服务器集群中,那么您应该考虑集成 NCache 作为您的 SignalR 背板解决方案。与 SQL Server 背板不同,SQL Server 背板可能会因数据库锁定而成为瓶颈, NCache 它采用内存分发来消除延迟。此外,作为原生 .NET 解决方案,它避免了非原生解决方案中常见的序列化开销。 Redis. NCache 作为功能强大的 .NET 分布式缓存脱颖而出,并具有以下优势:
探索更多关于 NCache 及其对 ASP.NET Core SignalR 应用程序的优势:
通过使用 NCache您的 ASP.NET Core SignalR 应用程序可以轻松扩展,同时在多个服务器上保持实时性能。
appsettings.json至关重要的是,您的客户端代码(JavaScript/Blazor)无需任何更改,迁移过程轻松便捷。