Frage

Tomcat (Version 5 hier) speichert Sitzungsinformationen im Speicher. Wenn diese Informationen Clustering wird periodisch im Cluster auf andere Server übertragen Dinge synchron zu halten. Sie können einen Datenbankspeicher verwenden Sitzungen persistieren zu machen, aber diese Informationen nur periodisch als gut geschrieben und nur wirklich für störungsWiederHerstellung verwendet wird, anstatt tatsächlich die In-Memory-Sitzungen zu ersetzen.

Wenn Sie nicht klebrigen Sitzungen verwenden möchten (unsere Konfiguration nicht möglich ist leider) dies wirft das Problem der die Sitzungen nicht synchron zu bekommen.

In anderen Sprachen, Web-Frameworks Sie neigen dazu, zu ermöglichen, eine Datenbank als primären Session-Speicher zu verwenden. Während dies eine mögliche Skalierung Problem führt ist das Session-Management sehr einfach machen. Ich frage mich, ob es einen Weg gibt, Kater zu bekommen, eine Datenbank für Sitzungen auf diese Weise zu verwenden (technisch dies würde auch die Notwendigkeit für eine Clusterkonfiguration in der tomcat server.xml entfernen).

War es hilfreich?

Lösung

Es ist auf jeden Fall eine Möglichkeit. Obwohl ich stark für klebrige Sitzungen stimmen würde - spart so viel Last für Ihre Server / Datenbank (es sei denn, etwas fehlschlägt) ...

http://tomcat.apache.org/tomcat-5.5 -doc / config / manager.html hat Informationen über Sessionmanager Konfiguration und Einrichtung für Tomcat. Je nach Ihren genauen Anforderungen haben Sie vielleicht Ihren eigenen Session-Manager zu implementieren, aber dies Ausgangspunkt sollte etwas Hilfe bieten.

Andere Tipps

Hier finden Sie aktuelle Terracotta , ich denke, es Ihre Skalierungsprobleme ohne größere Anwendung Redesign adressieren können.

Ich habe immer ein Fan der Rails-Sitzungen Technik gewesen: Speichern der Sitzungen (gezippt + verschlüsselt + signiert) im Cookie des Nutzers. So können Sie Load-Balancing zu Ihrem Herzinhalt tun, und nicht über klebrige Sitzungen zu kümmern, oder die Datenbank für Ihre Sitzungsdaten treffen usw. Ich bin nur nicht sicher, dass leicht in einer Java-Anwendung ohne irgendeine Art implementieren könnte Umschreiben der Session-Zugangscode. Wie auch immer nur ein Gedanke.

Eine weitere Alternative wäre der Memcached-Session-Manager , ein Memcached basierte Sitzungs-Failover und Sitzungsreplikationslösung für tomcat 6.x / 7.x Es unterstützt sowohl klebrige Sitzungen und nicht klebrig Sitzungen.

Ich schaffte dieses Projekt die beste Leistung und Zuverlässigkeit zu erhalten und nur durch das Hinzufügen von mehr tomcat und Memcached Knoten skalieren zu können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top