ASP.NET-Sitzungszustandsanbieter für NCache in Webfarmen

Für lokale Bereitstellungen bietet ASP.NET Session State drei integrierte Speicheroptionen (InProc, StateServer und SqlServer) sowie eine vierte Option „Benutzerdefiniert“. Die ersten beiden integrierten Optionen (InProc, StateServer) weisen Skalierbarkeitsprobleme auf, während die Option SqlServer sowohl Leistungs- als auch Skalierbarkeitsprobleme aufweist.

Eine viel bessere Strategie ist die Verwendung der Option "Benutzerdefiniert" und des Plug-Ins NCache wie dein ASP.NET-Sitzungszustandsanbieter. NCache ist ein extrem schneller und skalierbarer verteilter Open-Source-Cache für .NET. Es bewältigt extreme Transaktionslasten, indem es Ihnen ermöglicht, zur Laufzeit weitere Cache-Server hinzuzufügen und linear zu skalieren. NCache bietet auch intelligente Cache-Replikation Sie verlieren also keinen ASP.NET-Sitzungsstatus, wenn ein Webserver oder ein Cache-Server ausfällt.

Architekturdiagramm von NCache ASP.NET Session State Provider in einer Webfarmumgebung, die eine zustandslose Webserver-Ebene zeigt, die mit einem linear skalierbaren dynamischen Cache-Cluster verbunden ist.
NCache Architektur für verteilte Sitzungen in ASP.NET-Webfarmen.

Vorteile der NCache ASP.NET-Sitzungszustandsanbieter

Umsetzung NCache Da Ihr Session State Provider (SSP) keine Codeänderungen erfordert, folgen Sie einfach diesen Schritten:

  1. Installieren die NCache Session Provider NuGet-Paket über den NuGet-Paketmanager.
  2. Einrichtung Ihre web.config-Datei soll den Sitzungsmodus "Custom" verwenden.
  3. Verlegen Sie Wir koordinieren den Versand NCache Clustername und Einstellungen in der Providerkonfiguration.

Einzelheiten zur Konfiguration finden Sie hier. ASP.NET-Sitzungszustandsanbieter für NCache. Im Folgenden sind einige der Vorteile der Verwendung von NCache als Ihr ASP.NET-Sitzungszustandsanbieter:

  1. Hohe Verfügbarkeit:NCache hat eine selbstheilende Peer-to-Peer-Clustering-Architektur ohne Single Point of Failure. Dies gewährleistet eine hundertprozentige Verfügbarkeit Ihres ASP.NET-Sitzungsstatusspeichers, was für geschäftskritische Anwendungen von entscheidender Bedeutung ist. Diese Hochverfügbarkeitsfunktionen machen NCache Die bevorzugte Wahl für unternehmenskritische Anwendungen im E-Commerce, Finanzdienstleistungssektor und Gesundheitswesen, wo die Sitzungspersistenz für die Integrität der Transaktionen von entscheidender Bedeutung ist.
  2. Lineare Skalierbarkeit:NCache ermöglicht es Ihnen, skalieren Sie Ihren Cache-Cluster linear indem Sie dem Cluster weitere Cache-Server hinzufügen. Dies erhöht Ihre Transaktionskapazität und auch Ihre Speicherkapazität. Dies bedeutet, dass die Speicherung des ASP.NET-Sitzungszustands bei hoher Transaktionslast nie zu einem Engpass für Ihre Anwendung wird.
  3. Intelligente Sitzungsreplikation:NCache bietet umfangreiche Caching-Topologien (Gespiegelter Cache, Replizierter Cache und Partitionsreplikat-Cache) mit intelligenter Sitzungsreplikation, die keine Kompromisse bei Leistung und Skalierbarkeit eingeht. Dadurch wird sichergestellt, dass Sie keine Sitzungsdaten verlieren, wenn ein Webserver oder ein Cache-Server ausfällt.
  4. Schnelle kompakte Serialisierung:NCache stellt ein Kompakte Serialisierung Das ist schneller als eine normale .NET-Serialisierung und erfordert keine Programmierung. Registrieren Sie einfach Ihre .NET-Klassen damit und NCache generiert und kompiliert Serialisierungscode zur Laufzeit automatisch für eine effiziente Nutzung.

Wie verwaltet man ASP.NET-Sitzungen über mehrere Regionen (Rechenzentren) hinweg?

NCache bietet Ihnen zwei Möglichkeiten, den ASP.NET-Sitzungsstatus für Anwendungen zu verwalten, die in mehreren Regionen (Rechenzentren) ausgeführt werden, und dabei die Sitzungskonsistenz zwischen diesen Regionen aufrechtzuerhalten. Diese sind wie folgt:

  1. WAN-Replikation des ASP.NET-Sitzungsstatus: NCache stellt ein Brückentopologie Damit können Sie Ihren gesamten ASP.NET-Sitzungsstatusspeicher (den verteilten Cache) in eine andere Region (Rechenzentrum) replizieren WANDadurch wird sichergestellt, dass Ihre Sitzungen immer in mehreren Regionen (Rechenzentren) vorhanden sind. Sie können dies im Aktiv-Passiv-Modus (für die Notfallwiederherstellung) oder im Aktiv-Aktiv-Modus verwenden. Im Aktiv-Aktiv-Modus können Sie sogar den Datenverkehr zwischen mehreren Regionen (Rechenzentren) ausgleichen. All dies wird durch Konfigurationsänderungen erreicht.

  2. ASP.NET-Sitzungsstatus für mehrere Regionen: Wenn Sie den ASP.NET-Sitzungsstatus aufgrund der Bandbreitennutzung nicht über das WAN replizieren möchten, können Sie Folgendes verwenden: ASP.NET-Sitzungsstatus für mehrere Standorte Merkmal von NCacheDabei wird der ASP.NET-Sitzungsstatus nicht zwischen den Sites repliziert, sondern am Ort seiner Erstellung gespeichert. Wenn Sie jedoch Datenverkehr von einer Region (Rechenzentrum) in eine andere verschieben, wird der ASP.NET-Sitzungsstatus mit verschoben. Auf diese Weise können Sie zwei oder mehr aktive Regionen (Rechenzentren) haben, von denen jede den Großteil ihres Datenverkehrs lokal hält, aber bei Bedarf gelegentlich in eine andere Region überläuft.

    Und Sie können auch ein Rechenzentrum herunterfahren, ohne dass es zu Unterbrechungen für die Benutzer kommt, da ihre Sitzungen für andere Rechenzentren zugänglich sind.

Erweiterte Funktionen im NCache ASP.NET-Sitzungszustandsanbieter

Das NCache Der ASP.NET Session State Provider implementiert alle Standard ASP.NET-Sitzungszustandsanbieter Funktionen. Darüber hinaus bietet es verschiedene erweiterte Funktionen, mit denen Sie komplexe Situationen in Ihren Anwendungen bewältigen können.

  1. Teilen Sie Sitzungen über Anwendungsdomänen hinweg: Wenn Ihre Anwendung mehrere Anwendungsdomänen mit separaten web.config Dateien, indem Sie dieselbe sessionAppId festlegen (z. B. „NCacheApp1") ermöglicht in allen die gemeinsame Sitzungsnutzung zwischen diesen Domänen. Wenn Sie eine andere Sitzungs-App-ID verwenden, werden Sitzungen nicht zwischen Anwendungsdomänen gemeinsam genutzt.
  2. Fehlerprotokollierung: Sie können aktivieren Fehlerprotokollierung in eine Protokolldatei auf Ihrem Webserver (in INSTALL_DIR\NCache\log-files\SessionStoreProvider Ordner) durch Angabe enableLogs = "true". Sie können auch die Protokollierung von Fehlern im Windows-Ereignisprotokoll aktivieren, indem Sie angeben writeExceptionsToEventLog = "true".
  3. Standardsitzungssperre: Das Standardverhalten der ASP.NET-Sitzungssperre besteht darin, dass bei einer gesperrten Sitzung eine weitere Anforderung 90 Sekunden (konfigurierbar) wartet und am Ende die Sitzung zwangsweise entsperrt. Sie können diese Option wie folgt angeben:

    enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false"
  4. Verbesserte Sitzungssperre: Wenn Sie eine ASP.NET-Anwendung mit hohem Datenverkehr haben, bei der Roboter möglicherweise Daten scrapen und dieselbe Sitzungs-ID für Hunderte oder Tausende von Anfragen gleichzeitig verwenden, können Sie sich die Standardoption zum Sperren der Sitzung nicht leisten, da eine Wartezeit von 90 Sekunden alle verfügbaren Sockets belegen könnte. Stattdessen möchten Sie die Anfrage schnell zurückgeben, um einen Fehler anzuzeigen. Sie können dies wie folgt angeben:

    enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false"

    Dabei werden 5 Wiederholungsversuche im Abstand von einer halben Sekunde unternommen, und anschließend wird eine leere Sitzung zurückgegeben, um einen Fehler zu signalisieren.

  5. Anwendungsfall im Unternehmen: Dieses verbesserte Sperrverhalten wurde speziell für eine stark frequentierte Airline-Website entwickelt, um eine systemweite Socket-Erschöpfung bei intensivem Robot-Scraping und Ereignissen mit hoher Parallelität zu verhindern.

Was macht man als nächstes?

Häufig gestellte Fragen (FAQ)

Ja. Durch die Konfiguration einer passenden sessionAppId in der web.config jeder Anwendung, NCache Ermöglicht die gemeinsame Nutzung des Sitzungsstatus über verschiedene Anwendungsdomänen hinweg. Dies ist ideal für Umgebungen, in denen Benutzer innerhalb derselben Sitzung zwischen mehreren Unteranwendungen wechseln.

Ja. NCache ist eine „Zero-Code“-Lösung für die Sitzungsverwaltung. Sie müssen lediglich Ihre web.config-Datei ändern, um den sessionState-Modus auf „Custom“ zu setzen und die NCache Anbieter. Eine Neukompilierung der Anwendung ist nicht erforderlich.

NCache nutzt eine selbstheilende Peer-to-Peer-Clusterarchitektur mit intelligenter Sitzungsreplikation. Durch die Verwendung von Topologien wie Partition-Replica, NCache Erstellt eine Sicherungskopie jeder Sitzung auf einem anderen Knoten und gewährleistet so 100%ige Verfügbarkeit und Datenintegrität, selbst wenn ein Web- oder Cache-Server ausfällt.

NCache SQL Server ist ein verteilter In-Memory-Cache, während SQL Server eine festplattenbasierte Datenbank ist. NCache beseitigt die Datenbankengpässe und die hohen Serialisierungskosten, die mit SQL Server verbunden sind, und bietet lineare Skalierbarkeit sowie Antwortzeiten im Submillisekundenbereich für den Abruf von Sitzungen.

Ja. NCache bietet zwei Hauptfunktionen für die Unterstützung mehrerer Regionen: WAN-Replikation (über Bridge-Topologie) für aktiv-passive oder aktiv-aktive Notfallwiederherstellung und Multi-Site-Sitzungen, die es ermöglichen, dass Sitzungen lokal beim Benutzer bleiben, aber zwischen Rechenzentren verschoben werden, wenn der Datenverkehr umgeleitet wird.

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