Maison  >  Article  >  Java  >  Utilisez Redis pour implémenter le partage de session sous le cluster Tomcat

Utilisez Redis pour implémenter le partage de session sous le cluster Tomcat

巴扎黑
巴扎黑original
2017-06-26 09:22:001443parcourir

L'article précédent a implémenté le cluster TOMCAT sous proxy inverse NGINX sous LINUX ()

Cette fois, nous l'avons implémenté sur la base de l'article précédent Session problème de partage

Machine Nginx : 192.168.1.108

Les deux machines Tomcat sont : 192.168.1.168

                                                                                                                                                        192.168.1.178

 

Un : problème de partage de session de test

Ajouter la page index.jsp d'origine Le code suivant

SessionId :<%= session.getId() %>
<% String username =(String)session.getAttribute("username " );
if(!"".equals(username)&& username!=null){
out.print("------username is "+session.getAttribute("username"))
      } autre {
                                                                                                                                                           "------maintenant, le nom d'utilisateur est "+session.getAttribute("nom d'utilisateur"));

} }

%>

À ce moment-là, la première fois que vous la visite via nginx est la machine 178

Lors de l'actualisation à nouveau, la machine 168 a été accédée

D'accord On voit que la session n'est pas partagée pour le moment. Sous le cluster, des sessions

sont créées respectivement. 2 : Utilisez Redis pour implémenter le partage de session

Il existe de nombreuses façons de réaliser le partage de session Cette fois, la session est stockée dans Redis pour réaliser le partage.

1. Installez redis (Veuillez voir comment installer)

redis est également installé à 192.168.1.108, comme Nginx Installé sur la même machine

2. Copiez les packages jar requis dans les répertoires lib des deux tomcats

3. Modifier le contenu dans context.xml

respectivement dans tomcat/conf Ajouter le contenu suivant dans /context.xml

🎜>

host="192.168.1.108"

port ="6379"

base de données="0"

maxInactiveInterval="60" / >

où className est fixe et obtenu est la classe implémentée dans le package jar

host est le nom d'hôte de redis et le port est redis La base de données du port est le nombre de bibliothèques Redis où la session est stockée

maxInactiveInterval indique la durée de survie de la session

4. Testez à nouveau le partage de session

Après les trois premières étapes, le problème de partage de session sous redis a été réalisé, testez à nouveau

Démarrez redis, nginx et tomcat respectivement et visitez http://192.168.1.108:7777/nginxTest/

À ce moment, nginx est le premier à avancer à 178 Sur cette machine, à ce moment, le nom d'utilisateur dans la session est vide, puis une valeur est stockée dans

nom d'utilisateur, puis la valeur

Visitez à nouveau http://192.168.1.108:7777/nginxTest/, à ce moment, nginx est transféré à la machine 168

À ce moment, l'identifiant de session est le même que 178. En même temps, le nom d'utilisateur a également une valeur, et la valeur

est imprimée directement. Cela montre que la session. est partagé à ce moment. La session correspondante

est également enregistrée dans redis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn