Ursache des Vorfalls: Es gibt ein Hauptprojekt „Bilder, die schöne Dinge beschreiben“, und eine weitere Unterfunktion ist die Eingabefunktion des Markeninhabers, die ein vom Hauptprojekt getrenntes Projekt ist, um angemeldete Benutzerinformationen zu teilen Die gemeinsame Nutzung ist implementiert, zwei Tomcats, ein Tomcat6 und ein Tomcat7
Realisierung der Sitzungsfreigabe unter dem Webprojekt-Windows-System
Erster Schritt:
Konfigurieren Sie den folgenden Code in den context.xml-Dateien der beiden Tomcats:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:127.0.0.1:11211"lockingMode="auto"sticky="true"requestUriIgnorePattern=".*/.(ico|png|gif|jpg| css|j s)$"sessionBackupAsync="false"sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"copyCollectionsForSerialization="true"/>
Schritt zwei:
Jar-Paket unter Tomcat6 hinzugefügt:
Jar-Paket unter Tomcat7 hinzugefügt:
PS: Verwenden Sie Memcache, um die Tomcat-Sitzung zu speichern
Der Hauptzweck des Schreibens dieses Artikels besteht darin, einige Fehler im Internet zu korrigieren.
Voraussetzungen:
1. Memcached funktioniert normal
2. Tomcat funktioniert normal.
1. Installationsmethode und Installationspaket
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
Installationsmethode: Legen Sie diese Pakete in /usr/local/tomcat6.0/lib ab.
2. Bearbeiten Sie die Tomcat-Konfigurationsdatei.
<Dies ist wichtig, da in den meisten Artikeln im Internet die Änderung der Konfiguration im Server thematisiert wird. Derzeit wurde festgestellt, dass durch Bearbeiten der Datei context.xml die Sitzung sofort in den Memcache verschoben werden kann. >
# vim /usr/local/tomcat6.0/conf/context.xml <Kontext> <!-- Fügen Sie den folgenden Inhalt unter diesem Feld hinzu. Geben Sie beim Betreten des Knotens die IP-Adresse Ihres zwischengespeicherten Servers und die Portnummer ein --> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context>
3. Wie teste ich?
Meine aktuelle Testmethode besteht darin, den Lastausgleich über mod_jk von Apache zu implementieren (in einem früheren Artikel geschrieben) und die Sitzungsreplikation zwischen Tomcats zu aktivieren.
Das Ergebnis ist, dass die Seesions-ID den Knoten bei jeder Benutzerübermittlung ändert, die ID jedoch nicht.
Zum Beispiel:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
Die nächste Übermittlung lautet: <Der Knoten wird gewechselt, aber die ID bleibt unverändert>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
Kombiniert mit dem Status von Memcache: <Als es mir nicht gelang, die Sitzung erfolgreich in Memcached zu verschieben, war cmd_set 0>
# perl memcached-tool.pl 10.254.41.197:11211 Statistiken
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 Statistiken
cmd_get 31
cmd_set 17
get_hits 14
Ich denke, basierend auf dem obigen Urteil ist die Konfiguration erfolgreich!