Java-Websitzungen mit NCache

Fachsitzungen sind eine Möglichkeit, Daten für verschiedene Benutzer zu speichern. Auf dem Anwendungsserver erstellte Java-Sitzungsobjekte, sogenannte Servlet-Container, die die Webanwendung hosten, sind in einem Java-Servlet oder einer Java-Server-Seite (JSP) enthalten Apache Tomcat, WildFly, Oracle WebLogic Server und IBM WebSphere-Anwendungsserver.

Beispielsweise bietet der Tomcat-Webserver Sitzungsverarbeitung durch Sitzungsreplikation über Tomcat-Webserver-Cluster. Die Sitzungsreplikation kann zu einem Daten- und Speicher-Overhead führen, langsam werden und an Leistung und Skalierbarkeit leiden.

Daher sind NCache bietet eine bessere Option, bei der Benutzer ihre Java-Sitzungen problemlos in ihrer Anwendung in einer Webfarm mit Lastenausgleich speichern können.

Java Web Session Caching-Architektur NCache Session Provider in einer Load-Balancing-Webfarm für lineare Skalierbarkeit.
Skalierbare Java-Sitzungsverwaltung mit NCache Dynamischer Cluster.

Unterstützte Java-Servlet-Container und Spezifikationen

NCache bietet seinen Benutzern die Möglichkeit, verschiedene Arten von Servlet-Containern zu verwenden, die ihre Webanwendung wie unten beschrieben problemlos hosten können. NCache ist mit den Java Servlet 3.1+ Spezifikationen kompatibel.

  1. Apache tomcat: Es handelt sich um eine Open-Source-Implementierung von Java Servlet und Java Server Pages und bietet außerdem eine „reine Java“-HTTP-Webserverumgebung, in der Java-Code ausgeführt werden kann. Es bietet Sitzungsverwaltung über Sticky Sessions.
  2. Wildfliege: WildFly ist ein leichter, leistungsstarker Open-Source-Java-EE-Anwendungsserver, der von Red Hat entwickelt wurde.
  3. Oracle WebLogic Server: Oracle WebLogic ist ein Java EE-Anwendungsserver, der zum Entwickeln, Bereitstellen und Ausführen von Unternehmensanwendungen verwendet wird.
  4. IBM WebSphere-Anwendungsserver: IBM WebSphere Server ist ein Java EE-Anwendungsserver, der eine Laufzeitumgebung zum Erstellen, Bereitstellen und Verwalten von Unternehmensanwendungen bereitstellt.

Konfigurieren des Java-Sitzungsmoduls für NCache

Zum Konfigurieren von Java-Sitzungen muss die Datei „session.xml“ im Verzeichnis %NC_Home%/config geändert werden. NCache Mappe. Im Folgenden ist der Code, der es tut NCache. Weitere Einzelheiten zum Hinzufügen von Bibliotheken, zum Definieren von Filtern und zum Bereitstellen der Anwendung mithilfe von Servlet-Containern finden Sie unter Bibliotheken hinzufügen und Filter definieren um Hilfe. NCache nutzt die Standard-Java-Servlet-Filter-API, wodurch Sitzungsverwaltungsaufrufe abgefangen und an den verteilten Cache umgeleitet werden können, ohne dass Änderungen an Ihrer Anwendungslogik erforderlich sind.

<?xml version="1.0" encoding="UTF-8"?>  
   <!--for single regional session provider-->
<servlet-session-config>
    <cache id="myPartitionedCache"/>
    <log log-props="log4j.properties"/>
    <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
</servlet-session-config>

Warum verwenden NCache für Java-Sitzungsverwaltung?

NCache bietet dem Benutzer eine Option für Java-Anwendungen, Sitzungen ohne Codeänderung beizubehalten. NCache verteiltes Caching. Wenn Ihre Anwendung in einer Webserverfarm mit Lastenausgleich ausgeführt wird und Sie einen zuverlässigen und skalierbaren Speicher für Ihre Sitzungspersistenz benötigen, NCache bringt folgende Vorteile:

  1. Beste Leistung: NCache ermöglicht schnellste Reaktionszeiten und somit eine verbesserte Leistung. Durch die Nutzung NCache Durch die kompakte Serialisierung werden Java-Objekte deutlich schneller serialisiert als mit der Standard-Java-Serialisierung, wodurch der CPU-Overhead und die Netzwerklatenz drastisch reduziert werden.
  2. Hohe Verfügbarkeit: NCache bietet stark verteilte Cache-Cluster ohne Single Point of Failure hoch verfügbar Das bedeutet, dass Sie Cache hinzufügen oder entfernen können, ohne Ihre Anwendung zu stoppen.
  3. Extreme Zuverlässigkeit: NCache Ermöglicht es dem Benutzer, Java-Servlet-Sitzungen gemäß der festgelegten Topologie auf mehreren Servern zu replizieren. Topologien wie Partitioned-Replica gewährleisten die Spiegelung der Sitzungsdaten auf allen Knoten und somit eine hundertprozentige Verfügbarkeit, selbst wenn ein einzelner Cache-Server ausfällt – ohne Kompromisse bei Zuverlässigkeit und Leistung. Daher gehen dem Benutzer keine Sitzungsdaten verloren, selbst wenn der Cache-Server aus irgendeinem Grund ausfällt.
  4. Brillante Sitzungsreplikation durch Topologien: NCache bietet verschiedene Caching-Topologien, durch die Sie Ihre Sitzungen entsprechend Ihren Anforderungen beibehalten können. Man kann zum Beispiel verwenden Partitioniert-replizierte Topologie für mehr Zuverlässigkeit und Skalierbarkeit.
  5. Lineare Skalierbarkeit: NCache, ein In-Memory verteilt linear skalierbar Grid, ist in der Lage, hohe Lasten zu bewältigen, weshalb Sitzungsanwendungen so viel Skalierbarkeit wie möglich erreichen können.

Wie lassen sich Java-Sitzungen über mehrere Regionen hinweg verwalten?

Die Verwaltung von Sitzungen über verteilte Rechenzentren hinweg führt häufig zu Latenz- und Synchronisierungsproblemen. NCache Dies wird durch die Bereitstellung flexibler Optionen für die Persistenz an mehreren Standorten gelöst. So lassen sich Java-Servlet-Sitzungen über mehrere, geografisch getrennte Webfarmen hinweg verwalten. NCache bietet Sitzungspersistenz an mehreren Standorten auf folgende Weise:

  1. Java Web Sessions WAN-Replikation: NCache ermöglicht es einem Benutzer, alle Java-Sitzungen über das WAN in eine andere Region (Rechenzentrum) zu replizieren, was über die erfolgt Brückentopologie Merkmal von NCache. Dadurch wird sichergestellt, dass Ihre Java-Sitzungen niemals verloren gehen, selbst wenn eine Region ausfällt.
  2. Siteübergreifende Java-Websitzungen: Wenn ein Benutzer die Sitzungen hauptsächlich aufgrund des hohen Bandbreitenverbrauchs und möglicher Leistungsprobleme nicht über das WAN replizieren möchte, kann er sich für das Konzept von entscheiden Unterstützung für Multi-Site-Java-Sitzungen, ein Merkmal von NCache. Bei diesem Ansatz kann jede Region ihre eigenen Caches konfigurieren und jeder Cache hat seinen eigenen Satz von Clients (Java-Servlet). Die Sitzung wird nicht standortübergreifend repliziert, sondern an ihrem Erstellungsort aufbewahrt.

Dadurch können wir zwei oder mehr aktive separate Regionen haben und ein Benutzer kann den größten Teil des Datenverkehrs in seiner eigenen Region behalten. Wenn der Benutzer eine Region aus irgendeinem Grund herunterfährt, verursacht dies kein Problem, da andere Regionen auf diese Region zugreifen können.

Erweiterte Funktionen im NCache Java Websitzungen

Java-Websitzungen für NCache implementiert alle Standardfunktionen von Java Web Sessions. Darüber hinaus implementiert es einige erweiterte Funktionen, um andere wichtige Situationen zu bewältigen.

  1. Sitzungsablauf: NCache behandelt den Sitzungsablauf und entfernt Sitzungen für ein bestimmtes Sitzungs-Timeout aus dem Cache. In ähnlicher Weise können wir den Sitzungszeitüberschreitungswert über Servlet-Container und angeben NCache verwendet dieses Intervall intern, um Sitzungen aus dem Cache ablaufen zu lassen.
  2. Umgang mit mehreren Sitzungsanfragen und Datenintegrität: Um die Situation zu vermeiden, in der parallele Anforderungen dazu führen können, dass Sitzungen mutieren, NCache bietet einen Sperrmechanismus, damit keine zwei parallelen Anfragen dieselbe Sitzung ändern können. Sie können es auf folgende Weise in der Datei „session.xml“ angeben:
    <servlet-session-config>
        <locking enable-session-locking="true" retries-count="2" retry-interval="500ms" lock-timeout="36000ms" empty-session-when-locked="false"/>
    </servlet-session-config>
  3. Umgang mit der Serialisierung von Sitzungsdaten: Nachdem Sie Ihre Java-Objekte in Java-Servlet-Sitzungen eingefügt und außerhalb des Prozesses gespeichert haben, muss die gesamte Java-Servlet-Sitzung serialisiert werden. NCache bietet eine schnellere Serialisierung im Vergleich zur regulären Java-Serialisierung, genannt Kompakte Serialisierung. Damit erhöht sich die Geschwindigkeit Ihrer Java-Anwendung erheblich.

Was macht man als nächstes?

Häufig gestellte Fragen (FAQ)

NCache Verbessert die Performance, indem Sitzungsdaten von langsamen, festplattengebundenen Datenbanken oder ressourcenintensiver Servlet-Replikation in einen verteilten In-Memory-Cache verschoben werden. Durch die Verwendung von NCache Kompakte Serialisierung: Java-Objekte werden schneller serialisiert als mit der Standard-Java-Serialisierung, wodurch die CPU-Zyklen und die Netzwerklatenz in Umgebungen mit hohem Datenverkehr deutlich reduziert werden.

Ja. NCache ermöglicht eine Integration ohne Codeänderungen durch Nutzung der standardmäßigen Java Servlet Filter API. Sie müssen lediglich die session.xml-Konfigurationsdatei so anpassen, dass sie auf Ihre Anwendung verweist. NCache Der Cluster und der Filter fangen Sitzungsverwaltungsaufrufe automatisch ab und leiten sie an den verteilten Speicher um.

Um Datenverlust oder „Dirty Reads“ bei parallelen Anfragen (wie z. B. AJAX-Aufrufen) zu verhindern, NCache Implementiert einen robusten Mechanismus zur Sitzungssperrung. Dieser gewährleistet, dass während der Änderung eines Sitzungsobjekts durch eine Anfrage andere Anfragen in eine Warteschlange gestellt oder gemäß Ihrer spezifischen Sperrkonfiguration verarbeitet werden, wodurch die strikte Datenkonsistenz gewahrt bleibt.

Ja. NCache Unterstützt geografisch verteilte Webfarmen durch Bridge-Topologie für WAN-Replikation. Gewährleistet hohe Verfügbarkeit durch Replikation von Sitzungsdaten über Rechenzentren hinweg. Alternativ können Sie Multi-Site-Java-Sitzungen verwenden, um den Datenverkehr auf eine Region zu beschränken und gleichzeitig die Möglichkeit eines Failover auf einen anderen Standort bei Ausfall eines Rechenzentrums zu erhalten.

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