Serveur d'impression

Implémentation des étapes de la mise en cluster de tomcat – Bien choisir son serveur d impression

Par Titanfall , le 4 mai 2019 - 17 minutes de lecture

Téléchargez apache et installez-le sur le même système pour la mise en cluster tomcat verticale.

Installation d'apache plus

Après l'installation d'Apache, nous devons faire une configuration

Télécharger tomcat 6
Faire trois copies de tomcat
Si vous souhaitez créer trois systèmes de clustering tomcat, vous devez disposer de trois copies de tomcat.
Groupe 1 tomcatA
Groupe 2 tomcatB
Groupe 3 tomcatC

Clustering horizontal
regroupement horizontal fondamental

Clustering vertical
regroupement vertical fondamental
Si besoin de trois clusters, il faut alors créer trois instances de tomcat
étapes d'installation de tomcat

L'installation est simple car nous installons tomcat normalement. Dans ce cluster tomcat, nous optons pour un cluster tomcat vertical. Donc, toutes les instances de tomcat sont sur un seul serveur. Si vous voulez (clustering du monde réel) c'est aussi beaucoup plus simple. Puis travaillez avec ip au lieu de localhost, j’inclus également des exemples à télécharger.

Configuration Tomcat server.xml

  1. Clustering vertical tomcat (sur une seule machine)
  2. Mise en cluster tomcat horizontale (sur plusieurs ordinateurs)

Exemple de regroupement de tomcat vertical

ouvrir Tomcat -> Conf -> server.xml

Modifier en surbrillance et peut donner le port que nous pouvons requis

1 premier tomcatA

<! – Remarque: Un "serveur" n'est pas en soi un "conteneur", vous ne pouvez donc pas
définir des sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/server.html
->
<Serveur port = "8105" shutdown = "SHUTDOWN">







<! – Ressources globales JNDI
Documentation sur /docs/jndi-resources-howto.html
->

<! – Base de données d'utilisateurs modifiable qui peut également être utilisée par
UserDatabaseRealm pour authentifier les utilisateurs
->
<Nom de la ressource = "UserDatabase" auth = "Conteneur"
type = "org.apache.catalina.UserDatabase"
description = "Base de données d'utilisateurs pouvant être mise à jour et sauvegardée"
factory = "org.apache.catalina.users.MemoryUserDatabaseFactory"
chemin = "conf / tomcat-users.xml" />

<! – Un "service" est une collection d'un ou plusieurs "connecteurs" qui se partagent
un seul "conteneur" Remarque: un "service" n'est pas en soi un "conteneur",
vous ne pouvez donc pas définir de sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/service.html
->


<! –
<Nom de l'exécuteur = "tomcatThreadPool" namePrefix = "catalina-exec-"
maxThreads = "150" minSpareThreads = "4" />
->

<! – Un "connecteur" représente un noeud final par lequel les demandes sont reçues
et les réponses sont retournées. Documentation chez:
Connecteur HTTP Java: /docs/config/http.html (bloquant et non bloquant)
Connecteur AJP Java: /docs/config/ajp.html
Connecteur APR (HTTP / AJP): /docs/apr.html
Définir un connecteur HTTP / 1.1 non SSL sur le port 8080
->
<Connecteur port = "8081" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />

<! –
<Connector executor = "tomcatThreadPool"
port = "8080" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />
->
<! – Définir un connecteur SSL HTTP / 1.1 sur le port 8443
Ce connecteur utilise la configuration JSSE. Lorsque vous utilisez APR, le
connecteur doit utiliser la configuration de style OpenSSL
décrit dans la documentation APR ->
<! –
<Port du connecteur = "8443" protocole = "HTTP / 1.1" SSLEnabled = "true"
maxThreads = "150" scheme = "https" secure = "true"
clientAuth = "false" sslProtocol = "TLS" />
->


<Connecteur port = "8109" protocole = "AJP / 1.3" redirectPort = "8443" />

<! – Un moteur représente le point d’entrée (au sein de Catalina) qui traite
chaque demande. L'implémentation du moteur pour Tomcat autonome
analyse les en-têtes HTTP inclus dans la demande et les transmet
sur l'hôte approprié (hôte virtuel).
Documentation sur /docs/config/engine.html ->

<! – Vous devez configurer jvmRoute pour prendre en charge l’équilibrage de charge via AJP, à savoir:

->
<Nom du moteur = "Catalina" defaultHost = "localhost" jvmRoute = "tomcatA">

<! – Pour le regroupement, consultez la documentation sur:
/docs/cluster-howto.html (simple comment faire)
/docs/config/cluster.html (documentation de référence) ->

<! – Le dumper valve de la demande dump des informations de débogage utiles sur
les données de demande et de réponse reçues et envoyées par Tomcat.
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Ce domaine utilise la base de données UserDatabase configurée dans le fichier JNDI global.
ressources sous la clé "UserDatabase". Toute modification
qui sont effectuées sur cette UserDatabase sont immédiatement
disponible pour une utilisation par le Royaume. ->
<Realm className = "org.apache.catalina.realm.UserDatabaseRealm"
resourceName = "UserDatabase" />

<! – Définir l'hôte virtuel par défaut
Remarque: la validation de schéma XML ne fonctionnera pas avec Xerces 2.2.
->
<Nom de l'hôte = "localhost" appBase = "webapps"
unpackWARs = "true" autoDeploy = "true"
xmlValidation = "false" xmlNamespaceAware = "false">

<! – Vanne SingleSignOn, partage de l'authentification entre applications Web
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Le journal des accès traite tous les exemples.
Documentation sur: /docs/config/valve.html ->
<! –
<Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs"
prefix = "localhost_access_log." suffixe = ". txt" motif = "commun" resolHosts = "false" />
->




2 deuxième tomcatB

<! – Remarque: Un "serveur" n'est pas en soi un "conteneur", vous ne pouvez donc pas
définir des sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/server.html
->
<Serveur port = "8205" shutdown = "SHUTDOWN">







<! – Ressources globales JNDI
Documentation sur /docs/jndi-resources-howto.html
->

<! – Base de données d'utilisateurs modifiable qui peut également être utilisée par
UserDatabaseRealm pour authentifier les utilisateurs
->
<Nom de la ressource = "UserDatabase" auth = "Conteneur"
type = "org.apache.catalina.UserDatabase"
description = "Base de données d'utilisateurs pouvant être mise à jour et sauvegardée"
factory = "org.apache.catalina.users.MemoryUserDatabaseFactory"
chemin = "conf / tomcat-users.xml" />

<! – Un "service" est une collection d'un ou plusieurs "connecteurs" qui se partagent
un seul "conteneur" Remarque: un "service" n'est pas en soi un "conteneur",
vous ne pouvez donc pas définir de sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/service.html
->


<! –
<Nom de l'exécuteur = "tomcatThreadPool" namePrefix = "catalina-exec-"
maxThreads = "150" minSpareThreads = "4" />
->

<! – Un "connecteur" représente un noeud final par lequel les demandes sont reçues
et les réponses sont retournées. Documentation chez:
Connecteur HTTP Java: /docs/config/http.html (bloquant et non bloquant)
Connecteur AJP Java: /docs/config/ajp.html
Connecteur APR (HTTP / AJP): /docs/apr.html
Définir un connecteur HTTP / 1.1 non SSL sur le port 8080
->
<Connecteur port = "8082" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />

<! –
<Connector executor = "tomcatThreadPool"
port = "8080" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />
->
<! – Définir un connecteur SSL HTTP / 1.1 sur le port 8443
Ce connecteur utilise la configuration JSSE. Lorsque vous utilisez APR, le
connecteur doit utiliser la configuration de style OpenSSL
décrit dans la documentation APR ->
<! –
<Port du connecteur = "8443" protocole = "HTTP / 1.1" SSLEnabled = "true"
maxThreads = "150" scheme = "https" secure = "true"
clientAuth = "false" sslProtocol = "TLS" />
->


<Connecteur port = "8209" protocole = "AJP / 1.3" redirectPort = "8443" />

<! – Un moteur représente le point d’entrée (au sein de Catalina) qui traite
chaque demande. L'implémentation du moteur pour Tomcat autonome
analyse les en-têtes HTTP inclus dans la demande et les transmet
sur l'hôte approprié (hôte virtuel).
Documentation sur /docs/config/engine.html ->

<! – Vous devez configurer jvmRoute pour prendre en charge l’équilibrage de charge via AJP, à savoir:

->
<Nom du moteur = "Catalina" defaultHost = "localhost" jvmRoute = "tomcatB">

<! – Pour le regroupement, consultez la documentation sur:
/docs/cluster-howto.html (simple comment faire)
/docs/config/cluster.html (documentation de référence) ->

<! – Le dumper valve de la demande dump des informations de débogage utiles sur
les données de demande et de réponse reçues et envoyées par Tomcat.
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Ce domaine utilise la base de données UserDatabase configurée dans le fichier JNDI global.
ressources sous la clé "UserDatabase". Toute modification
qui sont effectuées sur cette UserDatabase sont immédiatement
disponible pour une utilisation par le Royaume. ->
<Realm className = "org.apache.catalina.realm.UserDatabaseRealm"
resourceName = "UserDatabase" />

<! – Définir l'hôte virtuel par défaut
Remarque: la validation de schéma XML ne fonctionnera pas avec Xerces 2.2.
->
<Nom de l'hôte = "localhost" appBase = "webapps"
unpackWARs = "true" autoDeploy = "true"
xmlValidation = "false" xmlNamespaceAware = "false">

<! – Vanne SingleSignOn, partage de l'authentification entre applications Web
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Le journal des accès traite tous les exemples.
Documentation sur: /docs/config/valve.html ->
<! –
<Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs"
prefix = "localhost_access_log." suffixe = ". txt" motif = "commun" resolHosts = "false" />
->




3 troisième tomcatC

<! – Remarque: Un "serveur" n'est pas en soi un "conteneur", vous ne pouvez donc pas
définir des sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/server.html
->
<Serveur port = "8305" shutdown = "SHUTDOWN">







<! – Ressources globales JNDI
Documentation sur /docs/jndi-resources-howto.html
->

<! – Base de données d'utilisateurs modifiable qui peut également être utilisée par
UserDatabaseRealm pour authentifier les utilisateurs
->
<Nom de la ressource = "UserDatabase" auth = "Conteneur"
type = "org.apache.catalina.UserDatabase"
description = "Base de données d'utilisateurs pouvant être mise à jour et sauvegardée"
factory = "org.apache.catalina.users.MemoryUserDatabaseFactory"
chemin = "conf / tomcat-users.xml" />

<! – Un "service" est une collection d'un ou plusieurs "connecteurs" qui se partagent
un seul "conteneur" Remarque: un "service" n'est pas en soi un "conteneur",
vous ne pouvez donc pas définir de sous-composants tels que "Valves" à ce niveau.
Documentation sur /docs/config/service.html
->


<! –
<Nom de l'exécuteur = "tomcatThreadPool" namePrefix = "catalina-exec-"
maxThreads = "150" minSpareThreads = "4" />
->

<! – Un "connecteur" représente un noeud final par lequel les demandes sont reçues
et les réponses sont retournées. Documentation chez:
Connecteur HTTP Java: /docs/config/http.html (bloquant et non bloquant)
Connecteur AJP Java: /docs/config/ajp.html
Connecteur APR (HTTP / AJP): /docs/apr.html
Définir un connecteur HTTP / 1.1 non SSL sur le port 8080
->
<Connecteur port = "8083" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />

<! –
<Connector executor = "tomcatThreadPool"
port = "8080" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />
->
<! – Définir un connecteur SSL HTTP / 1.1 sur le port 8443
Ce connecteur utilise la configuration JSSE. Lorsque vous utilisez APR, le
connecteur doit utiliser la configuration de style OpenSSL
décrit dans la documentation APR ->
<! –
<Port du connecteur = "8443" protocole = "HTTP / 1.1" SSLEnabled = "true"
maxThreads = "150" scheme = "https" secure = "true"
clientAuth = "false" sslProtocol = "TLS" />
->


<Connecteur port = "8309" protocole = "AJP / 1.3" redirectPort = "8443" />

<! – Un moteur représente le point d’entrée (au sein de Catalina) qui traite
chaque demande. L'implémentation du moteur pour Tomcat autonome
analyse les en-têtes HTTP inclus dans la demande et les transmet
sur l'hôte approprié (hôte virtuel).
Documentation sur /docs/config/engine.html ->

<! – Vous devez configurer jvmRoute pour prendre en charge l’équilibrage de charge via AJP, à savoir:

->
<Nom du moteur = "Catalina" defaultHost = "localhost" jvmRoute = "tomcatC">

<! – Pour le regroupement, consultez la documentation sur:
/docs/cluster-howto.html (simple comment faire)
/docs/config/cluster.html (documentation de référence) ->

<! – Le dumper valve de la demande dump des informations de débogage utiles sur
les données de demande et de réponse reçues et envoyées par Tomcat.
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Ce domaine utilise la base de données UserDatabase configurée dans le fichier JNDI global.
ressources sous la clé "UserDatabase". Toute modification
qui sont effectuées sur cette UserDatabase sont immédiatement
disponible pour une utilisation par le Royaume. ->
<Realm className = "org.apache.catalina.realm.UserDatabaseRealm"
resourceName = "UserDatabase" />

<! – Définir l'hôte virtuel par défaut
Remarque: la validation de schéma XML ne fonctionnera pas avec Xerces 2.2.
->
<Nom de l'hôte = "localhost" appBase = "webapps"
unpackWARs = "true" autoDeploy = "true"
xmlValidation = "false" xmlNamespaceAware = "false">

<! – Vanne SingleSignOn, partage de l'authentification entre applications Web
Documentation sur: /docs/config/valve.html ->
<! –

->

<! – Le journal des accès traite tous les exemples.
Documentation sur: /docs/config/valve.html ->
<! –
<Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs"
prefix = "localhost_access_log." suffixe = ". txt" motif = "commun" resolHosts = "false" />
->




Mise en cluster tomcat horizontale ou en cluster tomcat sur un système différent

Si vous voulez faire un clustering tomcat horizontal, vous n'avez pas besoin de changer de ports

Il suffit de laisser les ports inchangés, par exemple
1. <Serveur port = "8005" shutdown = "SHUTDOWN">
2. <connecteur port = "8080" protocole = "HTTP / 1.1"
connectionTimeout = "20000"
redirectPort = "8443" />

3. <connecteur port = "8009" protocole = "AJP / 1.3" redirectPort = "8443" />

4. Ajouter jvmRoute

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

5. Balise de clustering non commentée

Prochaine étape: ajouter une balise distribuée dans web.xml pour changer de session parmi les instances de clustering tomcat.

Créez n'importe quelle application, par exemple nous créons un cluster en tant que dossier d'application dans webapps

1. TomcatA -> webapps -> cluster -> WEB-INF -> web.xml
2. TomcatB -> webapps -> cluster -> WEB-INF -> web.xml
3. TomcatC -> webapps -> cluster -> WEB-INF -> web.xml

Ajouter dans les trois fichiers web.xml

<web-app xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version = "2.5">

Mod_jk est un connecteur qui communique avec le serveur Web Apache et Tomcat. Nous devons télécharger et copier ce connecteur dans le dossier du module d’apache
http://tomcat.apache.org/connectors-doc/ nous utilisons le dernier connecteur de mod_jk

Créez le fichier mod_jk.log dans le dossier des journaux, sinon Apache affichera une erreur

Ouvrir apache -> httpd.conf

Ouvrir dans n'importe quel éditeur de texte et ajouter

LoadModule jk_module modules / mod_jk-apache-2.2.4.so
JkWorkersFile "C: cluster Apache conf workers.properties"
JkLogFile "logs / mod_jk.log"
Erreur JkLogLevel
JkMount / équilibrage de charge du cluster
JkMount / cluster / * loadbalancer

Créez un fichier avec le nom workers.properties dans le dossier conf. Ce fichier indique les propriétés de toutes les instances de tomcat. Nous devons spécifier ici toutes les propriétés de tomcat. Apache transmettra une requête à tomcat via ce fichier

Tomcat vertical regroupant ce fichier comme

travailleurs.tomcat_home= / tomcatA
travailleurs.java_home= $ JAVA_HOME
ps= /
liste des travailleurs= tomcatA, tomcatB, tomcatC, équilibrage de charge

worker.tomcatA.port= 8109
worker.tomcatA.host= localhost
worker.tomcatA.type= ajp13
worker.tomcatA.lbfactor= 1

worker.tomcatB.port= 8209
worker.tomcatB.host= localhost
worker.tomcatB.type= ajp13
worker.tomcatB.lbfactor= 1

worker.tomcatC.port= 8309
worker.tomcatC.host= localhost
worker.tomcatC.type= ajp13
worker.tomcatC.lbfactor= 1

worker.loadbalancer.type= lb
worker.loadbalancer.balanced_workers= tomcatA, tomcatB, tomcatC
worker.loadbalancer.sticky_session= 1

pour le regroupement horizontal de tomcat

travailleurs.tomcat_home= / tomcatA
travailleurs.java_home= $ JAVA_HOME
ps= /
liste des travailleurs= tomcatA, tomcatB, tomcatC, équilibrage de charge

worker.tomcatA.port= 8009
worker.tomcatA.host= 192.168.1.1
worker.tomcatA.type= ajp13
worker.tomcatA.lbfactor= 1

worker.tomcatB.port= 8009
worker.tomcatB.host= 192.168.1.2
worker.tomcatB.type= ajp13
worker.tomcatB.lbfactor= 1

worker.tomcatC.port= 8009
worker.tomcatC.host= 192.168.1.3
worker.tomcatC.type= ajp13
worker.tomcatC.lbfactor= 1

worker.loadbalancer.type= lb
worker.loadbalancer.balanced_workers= tomcatA, tomcatB, tomcatC
worker.loadbalancer.sticky_session= 1

Les propriétés lbfactor définissent le facteur d'équilibrage de la charge, limitent le nombre de demandes d'envoi d'une instance tomcat particulière
par exemple
worker.tomcatC.lbfactor= 100
augmenter et diminuer la demande à cette instance de tomcatC

Vérifiez la mise en cluster si apache démarre correctement, sans erreur, sinon vérifiez les problèmes, en gros, les problèmes de mod_jk surviennent. Alors téléchargez différents mod_jk pour votre machine. Démarrez tous les tomcats, tomcatA, tomcatB et tomcatC. Si tous les chats sont démarrés, cela signifie que tomcat fonctionne bien.

Ouvrez test.jsp sur le navigateur et vérifiez l’identifiant de session. Vérifiez quel tomcat sur test.jsp exécute tomcatB ou tomcatC. Fermez ce tomcat, rechargez test.jsp. Vérifiez l'identifiant de session, si l'identifiant de session est identique. Ensuite, le clustering tomcat fonctionne bien.

Faire test.jsp dans le dossier de cluster des applications Web

tomcatA

<%
session.setAttribute ("a", "a");
%>


Test JSP

TomcatA Machine
ID de session : <%=session.getId()%>


tomcatB

<%
session.setAttribute ("a", "a");
%>


Test JSP

TomcatB Machine
ID de session : <%=session.getId()%>

TomcatC

<%
session.setAttribute ("a", "a");
%>


Test JSP

TomcatC Machine
ID de session : <%=session.getId()%>

Téléchargez l'équilibrage de la charge avant la compilation, code de clustering tomcat.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.