SignalR-Backplane für ASP.NET Core

NCache SignalR fungiert als leistungsstarkes Backplane für ASP.NET Core und ermöglicht die lineare Skalierung von Echtzeit-Webanwendungen in Multi-Server-Umgebungen ohne Leistungsengpässe. Echtzeit-ASP.NET-Core-SignalR-Anwendungen benötigen die Verteilung von Nachrichten über verschiedene Server für häufige Aktualisierungen. Beispiele hierfür sind Online-Spiele, Live-Finanz-Dashboards, kollaborative Whiteboards, Auktions-Apps und soziale Netzwerke sowie ähnliche Plattformen, bei denen Echtzeitinteraktion entscheidend ist. Um eine nahtlose Skalierbarkeit in Multi-Server-Umgebungen zu gewährleisten, nutzt SignalR einen Backplane-Mechanismus zur effizienten Nachrichtenverteilung. NCache bietet eine leistungsstarke und skalierbare SignalR-Backplane für diesen Zweck.

NCache ist eine verteiltes Caching Eine Lösung, die nahtlos mit ASP.NET Core SignalR zusammenarbeitet, um Echtzeit-Webanwendungen zu unterstützen, die in Load-Balancing-Multi-Server-Umgebungen laufen und so eine effektive Skalierbarkeit und Leistungssteigerung ermöglichen. NCache bietet auch erweiterte Pub/Sub-Nachrichten Funktionen, die SignalR dabei helfen, Nachrichten effizient über mehrere Server zu verteilen.

NCache SignalR-Backplane-Architektur mit Darstellung der Pub/Sub-Nachrichtenverteilung über eine lastverteilte Webfarm.
Abbildung 1: Echtzeit-Nachrichtenverteilungsablauf mit NCache als SignalR Backplane.
 

Die Verwendung von NCache als SignalR-Backplane

Sie können Ihre ASP.NET Core-Anwendung so konfigurieren, dass sie diese nutzt. NCache als SignalR-Backplane für hohe Skalierbarkeit und reibungslose Nachrichtenverteilung. Der Prozess der Integration NCache Die Einrichtung einer SignalR-Backplane ist einfach. Es sind nur wenige Konfigurationsschritte erforderlich, wie nachfolgend beschrieben:

  1. Installieren Sie das NCache SignalR-NuGet-Paket

    Fügen Sie NCache SignalR NuGet-Paket für Ihr Projekt:

    Install-Package AspNetCore.SignalR.NCache
  2. Ändern Sie appsettings.json

    Ändern Sie Ihre NCache Konfigurationseinstellungen in der appsettings.json Datei:

    {
      "NCacheConfiguration": {
        "CacheName": "demoCache",
        "EventKey": "chat",
      }
    }
  3. Registrieren NCache als SignalR-Backplane

    Ändern Programm.cs um SignalR für die Verwendung zu konfigurieren NCache als Backplane:

    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();
 

Warum verwenden NCache als SignalR Backplane?

Wenn Ihre ASP.NET Core-Anwendung starkem Datenverkehr ausgesetzt ist und in einer Load-Balancing-basierten Webfarm mit mehreren Servern betrieben wird, sollten Sie die Integration in Betracht ziehen. NCache als Ihre SignalR-Backplane-Lösung. Im Gegensatz zu SQL-Server-Backplanes, die aufgrund von Datenbank-Sperren zu einem Flaschenhals werden können, NCache Es nutzt die Verteilung im Arbeitsspeicher, um Latenzzeiten zu vermeiden. Da es zudem nativ in .NET implementiert ist, wird der Serialisierungsaufwand vermieden, der häufig bei nicht-nativen Lösungen auftritt. Redis. NCache zeichnet sich durch einen leistungsstarken .NET Distributed Cache aus und bietet folgende Vorteile:

  1. Beseitigen Sie Zustellungsverzögerungen mit .NET Pub/Sub Messaging.: NCache bietet Publish/Subscribe (Pub/Sub) Messaging-Funktionen, die von SignalR Backplane verwendet werden, um Nachrichten in einer Multi-Node-Umgebung effektiv über mehrere Webserver zu verteilen.
  2. Unterstützung für Gruppen und Benutzer: NCache Ermöglicht das Senden von Nachrichten an SignalR-Gruppen, die Sammlungen verwandter Verbindungen sind. Außerdem können Sie gezielte Nachrichten an alle Verbindungen senden, die mit einem bestimmten SignalR-Benutzer verknüpft sind.
  3. 100 % .NET Native Cache: Im Gegensatz zu anderen Caching-Lösungen, die ursprünglich in C++ entwickelt und später für Windows angepasst wurden, NCache ist nativ für .NET entwickelt. Dies gewährleistet reibungslose Kompatibilität und eine vollständig integrierte Erfahrung mit ASP.NET-Kern um weitere Anwendungsbeispiele zu finden.
  4. Extrem schnell und skalierbar: Da NCache ist ein verteilter In-Memory-Cache, der die Latenz deutlich reduziert und lineare Skalierbarkeit gewährleistet. Dadurch können Anwendungen einen hohen Nachrichtendurchsatz ohne Leistungsengpässe bewältigen.
  5. Hohe Verfügbarkeit und Datenzuverlässigkeit: NCache bietet einen Selbstheilung Peer-to-Peer-Clustering-Architektur ohne Single Point of Failure. Es umfasst auch intelligente Datenreplikation um Datenverluste beim Ausfall eines Cache-Servers zu verhindern und gleichzeitig die Replikationskosten niedrig zu halten.
  6. Bereitstellungsflexibilität: NCache fügt sich nahtlos in jede Umgebung ein und unterstützt Docker (Windows- und Linux-Container), Kubernetes, Red Hat OpenShift, Azure-, AWS- und Google Cloud-Bereitstellungen sowie lokale Windows/Linux-Server.

Was macht man als nächstes?

Erfahre mehr über NCache und seine Vorteile für ASP.NET Core SignalR-Anwendungen:

Durch die Nutzung NCacheIhre ASP.NET Core SignalR-Anwendungen können mühelos skaliert werden, während gleichzeitig die Echtzeitleistung über mehrere Server hinweg erhalten bleibt.

Häufig gestellte Fragen (FAQ)

In einer Webfarm mit mehreren Servern sind Clientverbindungen auf bestimmte Server beschränkt. Ohne Backplane können Nachrichten, die von einem Server gesendet werden, Clients auf einem anderen Server nicht erreichen. NCache fungiert als Pub/Sub-Nachrichtenbroker und verteilt Nachrichten sofort über alle Server, um eine Echtzeit-Synchronisierung für alle Benutzer zu gewährleisten.

Im Gegensatz zu Redis, das auf Linux basiert, NCache ist zu 100 % nativ in .NET implementiert. Dadurch entfällt der Overhead der Interop-Serialisierung und ermöglicht NCache Es fügt sich nahtlos in Ihre bestehende .NET-Architektur ein, ohne dass separate Linux-Umgebungen oder komplexe Clusterkonfigurationen erforderlich sind.

Die serverseitige Integration ist minimal: Installieren Sie einfach die AspNetCore.SignalR.NCache NuGet-Paket und fügen Sie einen Konfigurationsblock hinzu appsettings.jsonEntscheidend ist, dass keinerlei Änderungen an Ihrem clientseitigen Code (JavaScript/Blazor) erforderlich sind, wodurch die Migration mühelos vonstattengeht.

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.