TechDocs


   Rubrik > Web > Apache >


    09.09.2011 16:18:43  Web > Apache    

Tomcat Cluster Session Replikation

Session Informationen ausfallsicher machen:
Ein Internet-Client (Browser) kann eine Session auf einem HTTP Server (z.Bsp. Tomcat)erzeugen und verwalten lassen. Da HTTP ein zustandsloses Protokoll ist, kann mittels einer Session der aktuelle Zustand der Kommunikation zwischen Client und HTTP Serverauf Serverseite festgehalten werden.

Session-Failover - bei Ausfall eines Server übernimmt ein anderer Server aus dem Cluster die Arbeit des ausgefallenen Server und verwaltet auch dessen Sessions, ohne das es zu Unterbrechungen bei der Verarbeitung von Client-Anfragen kommt. Der Ausfall eines Server im Cluster wird so, für betroffene Clients nach aussen hin nahezu unbemerkt, durch die anderen Server kompensiert.

HTTP-Session im Tomcat Cluster gegen Verlust absichern (Session Sharing)
Es gibt verschiedene Möglichkeiten für Tomcat Server im Cluster Session Informationen auszutauschen.

  1. Austausch der Session Informationen über den JVM Speicher der Tomcat Cluster Knoten (In-Memory Session Replication)
  2. Ablage auf einem gemeinsamen Netzwerk Filesystem mit dem Persistent Session Manager
  3. Speicherung in einer Datenbank mit dem Persistent Session Manager


In-Memory Session Replikation

Membership Service/automatic cluster member discovery - per Multicast wird der Heartbeat des Cluster gemessen, Cluster Member machen sich untereinander bekannt indem an alle ein Lebenszeichen (ping) gesendet wird bzw. von allen Membern des Cluster pings entgegengenommen werden. Kann ein Tomcat Knoten des Cluster nicht in einer bestimmten Zeitspanne erreicht werden wird es nicht mehr als aktives Mitglied des Cluster geführt.

Replikationsmanager - Empfang von Session Informationen anderer Cluster Mitglieder und Senden von Session Aktualisierungen an alle Mitglieder des Cluster mittel TCP Sockets

Tomcat Session Replikation

Die Session Replikation lässt sich durch auskommentieren des Cluster Eintrag im Host Element der 'server.xml' Datei aller am Cluster beteiligten Tomcat Server aktivieren.
server.xml
Laufen mehrere Tomcat Instanzen auf einem Server muss mit der oben stehenden Standard-Konfiguration des Tomcat 5.5 der Receiver.tcpListenPort für alle Tomcat-Instanzen des Cluster verschieden sein.

Mit dem Valve Element lassen sich die Webseiten herausfiltern, welche von der Session Übergabe zwischen Client und Server ausgenommen werden sollen. Diese Anfragen werden von der Session Replikation im Cluster ausgenommen.

Für den Einsatz des FarmWarDeployer ist ein <distributable /> Eintrag in der web.xml Datei erforderlich.

Alle in einer Session zu speichernden Java-Objekte müssen die Serializable Schnittstelle implementieren, da eine Session vor der Replikation serialisiert wird.

Voraussetzung für ein Tomcat Cluster ist eine JDK Version >= 1.4.

Die Zeiteinstellungen aller Cluster Computer müssen gleich sein. Der regelmässige Abgleich mit einem Network Transfer Protocol Service (NTP) ist notwendig.

Weitere Links zu dem Thema:
  Tomcat Cluster mit Apache Load Balancer (mod_jk)
  Sticky Sessions im Tomcat Cluster konfigurieren
  JkStatusManager - Tomcat Load Balancer Management
  Mehrere Tomcat Instanzen auf einem Server laufen lassen



Übersicht