SignalR Backplane for ASP.NET Core

NCache SignalR 作为 ASP.NET Core 的高性能后端,支持实时 Web 应用程序在多服务器 Web 集群中线性扩展,避免性能瓶颈。实时 ASP.NET Core SignalR 应用程序依赖于跨服务器的消息分发来实现高频更新。此类应用程序包括在线游戏、实时财务仪表盘、协作白板、拍卖应用和社交媒体网络,以及其他以实时交互为关键的类似平台。为了确保在多服务器环境中实现无缝扩展,SignalR 依赖于后端机制来高效地分发消息。 NCache 提供强大且可扩展的 SignalR 背板 为了这个。

NCache 是一个意念波· 分布式缓存 该解决方案可与 ASP.NET Core SignalR 无缝协作,支持实时 Web 应用程序,在负载均衡的多服务器环境中运行,从而实现有效的可扩展性和性能提升。 NCache 还提供先进的 Pub/Sub 消息传递 帮助 SignalR 在多个服务器之间高效分发消息的功能。

NCache SignalR 背板架构展示了在负载均衡的 Web 集群中发布/订阅消息的广播。
图 1:使用实时消息分发流程 NCache 作为 SignalR 背板。
 

运用 NCache SignalR 背板

您可以配置 ASP.NET Core 应用程序以利用 NCache 作为 SignalR 背板 实现高可扩展性和流畅的消息分发。集成 NCache SignalR 背板的配置非常简单,只需按照以下步骤进行配置即可:

  1. 安装 NCache SignalR NuGet 包

    添加 NCache SignalR NuGet 包到您的项目:

    Install-Package AspNetCore.SignalR.NCache
  2. 修改 appsettings.json

    修改你的 NCache 配置设置 应用设置.json 文件:

    {
      "NCacheConfiguration": {
        "CacheName": "demoCache",
        "EventKey": "chat",
      }
    }
  3. 立即注册 NCache 作为 SignalR 背板

    修改 程序.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();
 

为何使用 NCache 作为 SignalR 背板?

如果您的 ASP.NET Core 应用程序流量很高,并且运行在负载均衡的多服务器 Web 服务器集群中,那么您应该考虑集成 NCache 作为您的 SignalR 背板解决方案。与 SQL Server 背板不同,SQL Server 背板可能会因数据库锁定而成为瓶颈, NCache 它采用内存分发来消除延迟。此外,作为原生 .NET 解决方案,它避免了非原生解决方案中常见的序列化开销。 Redis. NCache 作为功​​能强大的 .NET 分布式缓存脱颖而出,并具有以下优势:

  1. 利用 .NET 发布/订阅消息传递消除交付延迟: NCache 提供发布/订阅 (Pub/Sub) 消息传递功能,SignalR Backplane 使用该功能在多节点环境中有效地将消息分发到多个 Web 服务器。
  2. 对组和用户的支持: NCache 允许向 SignalR 组(相关连接的集合)发送消息。它还使您能够向与特定 SignalR 用户链接的所有连接发送有针对性的消息。
  3. 100% .NET 原生缓存: 与最初用 C++ 开发、后来适用于 Windows 的其他缓存解决方案不同, NCache 专为.NET 原生构建。这确保了流畅的兼容性和完全集成的体验 ASP.NET核心 领域广泛应用,提供了卓越的解决方案。
  4. 速度极快且可扩展: 建立 NCache 是一种内存分布式缓存,它显著降低了延迟并确保了线性可扩展性。这使应用程序能够处理大量消息吞吐量而不会出现任何性能瓶颈。
  5. 高可用性和数据可靠性: NCache 提供 自愈 对等集群架构,无单点故障。它还包括智能 数据复制 防止缓存服务器宕机时数据丢失,同时保持较低的复制成本。
  6. 部署灵活性: NCache 可无缝融入任何环境,并提供支持 Docker (Windows 和 Linux 容器) Kubernetes, 红帽OpenShift,Azure、AWS 和 Google Cloud 部署,以及本地 Windows/Linux 服务器。

接下来做什么?

探索更多关于 NCache 及其对 ASP.NET Core SignalR 应用程序的优势:

通过使用 NCache您的 ASP.NET Core SignalR 应用程序可以轻松扩展,同时在多个服务器上保持实时性能。

常见问题

在多服务器网络集群中,客户端连接被隔离到特定的服务器上。如果没有后端网络,从一台服务器发送的消息无法到达另一台服务器上的客户端。 NCache 充当发布/订阅消息代理,即时将消息分发到所有服务器,以确保所有用户的实时同步。

不比 Redis它是基于Linux的, NCache 它是 100% 原生 .NET 代码。这消除了互操作序列化的开销,并允许 NCache 无需单独的 Linux 环境或复杂的集群配置,即可无缝集成到您现有的 .NET 堆栈中。

服务器端集成非常简单:只需安装即可。 AspNetCore.SignalR。NCache NuGet 包并添加配置块 appsettings.json至关重要的是,您的客户端代码(JavaScript/Blazor)无需任何更改,迁移过程轻松便捷。

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。