ASP.NET-Sitzungszustandsanbieter für NCache in Webfarmen

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

Eine viel bessere Strategie ist die Verwendung der Option "Benutzerdefiniert" und des Plug-Ins NCache als Ihren 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 außerdem eine intelligente Cache-Replikation, sodass Sie keinen ASP.NET-Sitzungsstatus verlieren, wenn ein Webserver oder ein Cache-Server ausfällt.

Doc: ASP.NET-Sitzungszustandsanbieter für NCache

ASP.NET-Sitzungszustandsanbieter für NCache

Vorteile NCache ASP.NET-Sitzungszustandsanbieter

Zunächst einmal ist für die Verwendung keine Programmierung erforderlich NCache als Ihren ASP.NET-Sitzungszustandsanbieter. Du änderst einfach deine web.config und spezifizierst sie NCache als Ihr Session State Provider (SSP). Details siehe unter Konfigurieren des ASP.NET-Sitzungsstatusanbieters für NCache. Im Folgenden sind einige der Vorteile für die Verwendung aufgeführt 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 bietet 100 % Betriebszeit für Ihren ASP.NET-Sitzungszustandsspeicher, der für geschäftskritische Anwendungen sehr wichtig 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 reichhaltige Caching-Topologien (gespiegelter Cache, replizierter Cache und Partitionsreplikat-Cache). Intelligente 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 schnelle kompakte Serialisierung Das ist schneller als die normale .NET-Serialisierung und erfordert keine Programmierung. Registrieren Sie einfach Ihre .NET-Klassen damit und NCache Generiert Serialisierungsquellcode, kompiliert ihn zur Laufzeit im Arbeitsspeicher, wenn Ihre Anwendung eine Verbindung mit dem Cache herstellt, und verwendet diesen kompilierten Code dann für alle nachfolgenden Serialisierungen.

Unterstützung für mehrere Regionen (Rechenzentren)

NCache bietet Ihnen zwei Möglichkeiten, den ASP.NET-Sitzungsstatus für Anwendungen zu verwalten, die in mehreren Regionen (Rechenzentren) ausgeführt werden, und dennoch die Sitzungskonsistenz über sie hinweg aufrechtzuerhalten. Sie sind:

  1. WAN-Replikation des ASP.NET-Sitzungsstatus: NCache stellt ein Brückentopologie damit Sie Ihren gesamten ASP.NET-Sitzungszustandsspeicher (den verteilten Cache) über das WAN in eine andere Region (Rechenzentrum) replizieren können. Dadurch 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 geschieht durch Konfigurationsänderungen.

  2. ASP.NET-Sitzungsstatus für mehrere Regionen: Wenn Sie den ASP.NET-Sitzungsstatus aufgrund der Kosten für den Bandbreitenverbrauch nicht über das WAN replizieren möchten, können Sie dies verwenden ASP.NET-Sitzungsstatus für mehrere Standorte Merkmal von NCache. Dabei wird der ASP.NET-Sitzungsstatus nicht standortübergreifend repliziert, sondern am Ort seiner Erstellung aufbewahrt. 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, den größten Teil des Datenverkehrs in seinem eigenen Rechenzentrum halten, aber gelegentlich in das andere Rechenzentrum überfließen, wenn Sie möchten. Und Sie können auch ein Rechenzentrum herunterfahren, ohne dass es zu Unterbrechungen für die Benutzer kommt, da andere Rechenzentren auf ihre Sitzungen zugreifen können.

Erweiterte Funktionen im NCache ASP.NET-Sitzungszustandsanbieter

NCache Der ASP.NET-Sitzungszustandsanbieter implementiert alle Standardfeatures des ASP.NET-Sitzungszustandsanbieters. Darüber hinaus bietet es verschiedene erweiterte Funktionen, mit denen Sie komplexe Situationen in Ihren Anwendungen handhaben können.

  1. Teilen Sie Sitzungen über App-Domänen hinweg: Wenn Sie mehrere App-Domänen verwenden und für jede App-Domäne eine separate web.config-Datei haben, geben Sie denselben Wert in an sessionAppId=>"NCacheApp1" und es führt dazu, dass die Sitzung über diese App-Domains hinweg geteilt wird. Wenn Sie eine andere Sitzungs-App-ID verwenden, werden Sitzungen nicht über App-Domänen hinweg geteilt.

  2. Fehlerprotokollierung: Sie können die Fehlerprotokollierung in einer Protokolldatei auf Ihrem Webserver aktivieren (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 standardmäßige Sperrverhalten von ASP.NET-Sitzungen besteht darin, dass, wenn eine Sitzung gesperrt ist, eine weitere Anforderung dafür 90 Sekunden lang wartet (konfigurierbar) und am Ende die Sitzung zwangsweise entsperrt wird. Sie können diese Option wie folgt festlegen:

     enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false" 

  4. Verbesserte Sitzungssperre: Wenn Sie eine stark frequentierte ASP.NET-Anwendung haben, in der Robots möglicherweise Daten auslesen und dieselbe Sitzungs-ID für Hunderte oder Tausende von Anfragen gleichzeitig verwenden, können Sie sich keine standardmäßige Sitzungssperroption leisten, da das Warten auf 90 Sekunden alle Ihre verfügbaren Sockets binden könnte. Stattdessen möchten Sie die Anforderung schnell zurückgeben, um auf einen Fehler hinzuweisen. Dies können Sie wie folgt festlegen:

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

    Dies macht 5 Wiederholungen in Intervallen von einer halben Sekunde und gibt dann eine leere Sitzung zurück, um einen Fehler anzuzeigen. Selbst das Auslösen einer Ausnahme ist hier kostspielig. Aus diesem Grund wird eine leere Sitzung implementiert. Dieses Verhalten wurde ursprünglich auf Anfrage einer stark frequentierten Airline-Website implementiert.

Was macht man als nächstes?

NCache Details
Herunterladen NCache
Fordern Sie eine personalisierte Demo an
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.