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.
Beziehen Sie sich auf die Sitzungsreplikation über mehrere gruppierte Tomcat-Server, damit die Sitzung Failover durchführen kann? – JoseK
Ja! Ich frage mich, was besser ist, Session-Replikation oder Stick-Session und ihre Nachteile. –