2010-06-14 4 views
10

Ich versuchte zu entscheiden, was besser in einem Tomcat + Apache Reverse-Proxy-Modus für Sitzungsreplikation ist. Was ist häufiger bei Bereitstellungen? Sitzungsreplikation oder Stick-Sitzung? Gibt es Nachteile für die Sitzungsreplikation?Was sind die Nachteile der Sitzungsreplikation auf Tomcat?

Dank

+0

Beziehen Sie sich auf die Sitzungsreplikation über mehrere gruppierte Tomcat-Server, damit die Sitzung Failover durchführen kann? – JoseK

+0

Ja! Ich frage mich, was besser ist, Session-Replikation oder Stick-Session und ihre Nachteile. –

Antwort

13

Ich kann die folgenden Überlegungen weisen darauf hin, wenn Sie für Sitzungsreplikation gehen.

Leistung

Der Hauptnachteil auf die Leistung sein. Replizierte Sitzungen beinhalten das Kopieren von Sitzungsdaten auf alle Server im Cluster. Je mehr Server Sie im Cluster haben, desto mehr Overheads sind erforderlich.

Tomcat hilft bei diesem Overhead, indem zwei Modi für die Sitzungsreplikation definiert werden.

DeltaManager (Standard) und Backup

Von dieser URL http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

der obigen Konfiguration verwenden wird All-to-all-Sitzung Replikation ermöglichen die DeltaManager mit Sitzung Deltas zu replizieren. Mit all-to-all meinen wir , dass die Sitzung zu alle anderen Knoten im Cluster repliziert wird. Dies funktioniert gut für kleinere Cluster , aber wir empfehlen es nicht für größere Cluster (viele Tomcat-Knoten). Auch bei der Verwendung der Delta-Manager wird es auf alle Knoten replizieren, auch Knoten , die nicht über die Anwendung im Einsatz haben.

Um dieses Problem zu umgehen, Sie den BackupManager verwenden möchten. Dieser Manager repliziert nur die Sitzungsdaten auf einen Sicherungsknoten und nur auf Knoten, auf denen die Anwendung implementiert ist. Kehrseite des Backup: nicht ganz so Schlacht

lesen this URL für gute Design-Tipps für den Cluster als Delta-Manager überprüft, wenn die Sitzungsreplikation ermöglicht.

Speicher

Wie viele gleichzeitige Benutzer die Anwendung schlagen werden? Je mehr Benutzer verwendet werden, desto mehr Daten werden in Sitzungen gespeichert und daher wird die Sitzungsreplikation überlastet.

-Code Überlegungen

Zusätzlich müssen Sie die Daten serializable durch die Anwendung setzen in die Sitzung, um sicherzustellen. Serialisierungssitzungsdaten haben einen gewissen Mehraufwand zum Replizieren des Sitzungsstatus. Es empfiehlt sich, die Sitzungsgröße relativ klein zu halten, sodass die Entwickler die Menge der in die Sitzung eingegebenen Daten überprüfen müssen.

Sticky Sessions

diese Überlegungen gegeben, es hängt wirklich von der Kritikalität der Anwendungsfälle. Wenn Sie sich nur für "sticky" -Sessions entscheiden, besteht die Gefahr, dass Benutzerdaten während einer kritischen Reise verloren gehen.

Haben Sie Mittel, um sich davon zu erholen - z. B. indem kritische Daten in jeder Phase einer Bestellung oder einer Zahlungstransaktion in die Datenbank übernommen werden? Wenn nicht, muss sich der Benutzer anmelden und erneut starten. Dies ist in Ordnung für Websites, die nicht transaktionsfähig sind, aber Durchsuchen von Daten brochureware oder Ausfüllen von Formularen zur Erfassung von Daten, die keine Zahlung etc.

0

Ich bevorzuge Sticky-Sitzung mit Memcache.

Verwandte Themen