tomcat clusters pour réaliser le partage gagnant et la session

Avant-propos:

Plusieurs fois, nous constatons que le déploiement d'applications doivent toujours cliquer sur une autre page pour vous connecter à nouveau, ce problème général est la session, lorsque le système ne peut pas toujours garder la visite de la session, cette session est principalement réalisée grâce à la configuration du cluster partagé tomcat!

1, et la configuration des ports tomcat9090 tomcat8080

Tomcat9090 modifier le fichier de configuration server.xml

< Port du serveur = "9005" arrêt = "shutdown" > < le port de connecteur = "9090" protocol = "HTTP / 1.1" connectionTimeout = "20000" redirectPort = "8443" / > < le port de connecteur = "9009" protocol = "AJP / 1.3" redirectPort = "8443" / >

2, définissez le cluster tomcat

Modification tomcat fichier de configuration, ouvrez le fichier server.xml dans le conf, trouver la ligne suivante

< Nom du moteur = "Catalina" defaultHost = "localhost" >

Aucun changement sont nécessaires, le code suivant est ajouté à cette ligne:

< Cluster className = "org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions = "8" > < Gestionnaire className = "org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown = "false" notifyListenersOnReplication = "true" / > < Canal className = "org.apache.catalina.tribes.group.GroupChannel" > < Membres className = "org.apache.catalina.tribes.membership.McastService" adresse = "228.0.0.4" port = "45564" fréquence = "500" dropTime = "3000" / > < Récepteur className = "org.apache.catalina.tribes.transport.nio.NioReceiver" adresse = "auto" port = "4000" AutoBind = "100" selectorTimeout = "5000" maxThreads = "6" / > < Expéditeur className = "org.apache.catalina.tribes.transport.ReplicationTransmitter" > < Transport className = "org.apache.catalina.tribes.transport.nio.PooledParallelSender" / > < / Sender > < Interceptor className = "org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" / > < Interceptor className = "org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" / > < / canal > < Valve className = "org.apache.catalina.ha.tcp.ReplicationValve" filtre = "" / > < Valve className = "org.apache.catalina.ha.session.JvmRouteBinderValve" / > < Deployer className = "org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir = "/ tmp / guerre temp /" deployDir = "/ tmp / guerre deploy /" watchDir = "/ tmp / guerre écoute /" watchEnabled = "false" / > < ClusterListener className = "org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" / > < ClusterListener className = "org.apache.catalina.ha.session.ClusterSessionListener" / > < / Cluster >

Ceci est tomcat groupe est préconfiguré, cluster howto.html dans tomcat document officiel pour voir les considérations pertinentes, dont il est nécessaire de prendre note: Assurez-vous que votre web.xml a < distribuable / >  élément

De toute évidence moyenne fichier web.xml pour le projet Web doit avoir < distribuable / > Cet élément, afin d'apporter des modifications introduites dans le projet web.

3, modifier le projet

Dans le \ tomcat \ webapps \ testcluster sous le nouveau dossier, sous le nouveau index.jsp get SessionID testcluster

< html > < tête > < titre > titre < / Titre > < meta http-equiv = "Content-Type" content = "text / html; charset = gb2312" / > < / Head > < corps > SessionID: < % = Session.getId (%) > < BR > SessionIP: < % = Request.getServerName ()% > < BR > SessionPort: < % = Request.getServerPort (%) > < % out.println ( "Ce serveur Tomcat est 8080"); % > < / Body > < / Html >

Testcluster créé sous le dossier WEB-INF au point web.xml WEB-INF Nouveau et ajouter index.jsp < distribuable / > élément

< ? Xml version = "1.0" encoding = "UTF-8"? > < ! - PublicCMS utilisent la technologie Servlet3.0, entrée Web.xml est plus l'ensemble du projet, config.initializer * Initializer comme l'ingénierie de classe d'entrée, config * Config pour la configuration Spring. - > < xmlns web-app: xsi = " xmlns = " xsi: schemaLocation = " id = version "WebApp_ID" = "3.0" > < display-name > elearning < / Affichage-nom > < distribuable / > < welcome-file-list > < Bienvenue fichier > index.jsp < / Bienvenue fichier > < / Bienvenue fichier-liste > < / Web-app >

Note: En raison de \ conf \ content.xml Configuré web.xml le point doit être placé sous le WEB-INF, si les besoins de web.xml à placer dans le répertoire WEB-INF

D: \ tomcat groupe \ tomcat8080 \ conf \ content.xml

< contexte > < ! - ensemble par défaut des ressources surveillées - > < WatchedResource > WEB-INF / web.xml < / WatchedResource > < ! - Décommentez à la persistance de session désactiver à chaque redémarrage Tomcat - > < ! - < chemin Manager = "" / > - > < ! - Décommentez pour permettre la connexion de virement de bord Comet (fournit des événements à l'expiration de la session ainsi que le cycle de vie de webapp) - > < ! - < Valve className = "org.apache.catalina.valves.CometConnectionManagerValve" / > - > < / Contexte >

4, et commencer à tomcat essai

Début tomcat:

D: \ tomcat groupe \ tomcat8080 \ bin \ startup.bat

D: \ tomcat groupe \ tomcat9090 \ bin \ startup.bat

Test Adresse:

http: // localhost: 8080 / testcluster / index.jsp

http: // localhost: 9090 / testcluster / index.jsp

Chaque navigateur aura différentes SessionID, mais avec un autre navigateur pour accéder au port acquis la même SessionID

paramètres tomcat configuration cluster: Attaché

La configuration ci-dessus sur le cluster de tomcat aussi longtemps que < moteur >  noeud ou < hôte >  noeud interne ajoutez le code suivant à des groupes de soutien:

< Cluster className = "org.apache.catalina.ha.tcp.SimpleTcpCluster" / >

Cette configuration ouvre la réplication tout à toutes les sessions, et de reproduire incrémentielles par DeltaManager. L'utilisation de tous à tous les moyens d'approche de cette session sera copiée sur ce groupe tous les autres noeuds. Pour les petits groupes qui des moyens sont applicables, mais nous ne recommandons pas l'utilisation d'un plus grand groupe (il y a beaucoup de cas tomcat nuds. par exemple, des dizaines de nuds et plus ...). en outre, l'utilisation du gestionnaire supplémentaire delta, même si certains noeud ne déploie pas l'application, la session sera copié à tous les nuds.

Est effectuée sur une réplication de session de cluster plus, besoin de copier uniquement le gestionnaire de session BackupManager cette données à un noeud de sauvegarde, et seuls les noeuds au déploiement d'une application correspondante des inconvénients BackupManager: Après le test, la performance est meilleur gestionnaire Delta .

Voici quelques-unes importantes par défaut:

1. Par défaut adresse Multicast (multidiffusion) est: 228.0.0.4

2. Par défaut le port de multidiffusion (multicast) est: 45564 (après le numéro de port et la combinaison d'adresse déterminera la relation de cluster, est considéré comme le même groupe).

3. diffusion IP par défaut java.net.InetAddress.getLocalHost (). GetHostAddress () (assurez-vous que vous n'êtes pas diffuser à 127.0.0.1, ce qui est une erreur commune)

4. Le port d'écoute par défaut TCP message copie est dans la gamme de 4000-4100 la première prise de serveur disponible.

La configuration des deux auditeurs: ClusterSessionListener et JvmRouteSessionIDBinderListener

6. La configuration des deux intercepteurs: TcpFailureDetector et MessageDispatch15Interceptor

Beaucoup de gens disent que la rédaction d'articles techniques comme personne, en tout cas, au moins, ils peuvent également partager pour voir ~

Ce film étranger antigouvernementale, satire mordante, mais il est encore difficile d'être si bien au-delà
Précédent
patron Ulanhot mis sans relâche: je reçois 100 millions d'achat vous et votre famille
Prochain
Regardez idiot! L'initiative d'Apple pour les utilisateurs iPhone envahisse, mais pour leurs amis à jouer de fou
Corée du Sud et la transe complète! Ce suspense variété Escape Room, je ris huit muscles abdominaux sont hors
premier Sommet AI de l'industrie des puces électroniques de la Chine a organisé avec succès, GTIC 2018 une chaleur sans précédent de toute la question sans urine
Cette sept minutes un excellent micro-film, grand-trou du cerveau, mettant fin à intimider les gens!
Apple annonce événement! Formellement a ouvert le nouveau siège, l'utilisateur: Vols pour rembourser
luxe dernier: négligence électrique et driverless, l'industrie automobile allemande sera le plus grand perdant?
Johnnie ce travail, les hommes peuvent comprendre seulement
mort cérébrale a également été expropriés, le pilote peu minable
gagner sous tomcat + nginx équilibrage de charge
Les deux hommes ont passé tatouage 1680 yuans, après avoir été trouvé pour être modèles féminins sourcils
Automobile Association a publié 20182 la production automobile et des données de vente
Frais, a explosé dans le monde entier ce film de science-fiction nord-américaine, en réalité que coûte si peu?