Cause de l'incident : Un projet principal "images décrivant de belles choses", et une autre sous-fonction est la fonction d'entrée du propriétaire de la marque, qui est un projet distinct du projet principal. Afin de partager les informations des utilisateurs connectés, le partage de session est nécessaire. réalisé, deux matous, un tomcat6, un tomcat7
Réalisation du partage de session sous le système Windows du projet Web
Premier pas:
Configurez le code suivant dans les fichiers context.xml des deux tomcats :
<Gérant 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"/>
Deuxième étape :
Package Jar ajouté sous Tomcat6 :
Package Jar ajouté sous tomcat7 :
PS : utilisez Memcache pour enregistrer la session Tomcat
L’objectif principal de la rédaction de cet article est de corriger certaines erreurs sur Internet.
Prérequis :
1. memcached fonctionne normalement
2. Tomcat fonctionne normalement.
1. Méthode d'installation et package d'installation
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
Méthode d'installation : placez ces packages dans /usr/local/tomcat6.0/lib.
2. Modifiez le fichier de configuration Tomcat.
<C'est important car la plupart des articles sur Internet parlent de modifier la configuration du serveur. À l'heure actuelle, il s'avère que la modification du fichier context.xml peut immédiatement lancer la session dans Memcache. >
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- Ajoutez le contenu suivant sous ce champ Veuillez remplir l'adresse IP et le numéro de port de votre serveur Memcached lors de la saisie du nœud --> <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. Comment tester ?
Ma méthode de test actuelle consiste à implémenter l'équilibrage de charge via mod_jk d'Apache (écrit dans un article précédent) et à activer la réplication de session entre Tomcats.
Le résultat est que l'ID de session changera le nœud à chaque soumission d'utilisateur, mais l'ID ne changera pas.
Par exemple:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
La prochaine soumission deviendra : <Le nœud est commuté, mais l'ID reste inchangé>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
Combiné avec l'état de memcache : <Lorsque je n'ai pas réussi à lancer la session vers memcached, cmd_set était 0>
# perl memcached-tool.pl 10.254.41.197:11211 statistiques
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 statistiques
cmd_get 31
cmd_set 17
get_hits 14
Je pense que sur la base du jugement ci-dessus, la configuration est réussie !