3.2.8. Changements au clustering
3.2.8.1. Changements à votre application pour le clustering Copier lienLien copié sur presse-papiers!
Démarrez JBoss EAP 6 avec le clustering activé
Pour activer le clustering dans JBoss EAP 5.x, vous devrez démarrer vos instances de serveur avec le profilall
ou undérivé, comme :EAP5_HOME/bin/run.sh -c all
$ EAP5_HOME/bin/run.sh -c all$ EAP5_HOME/bin/run.sh -c all$ EAP5_HOME/bin/run.sh -c all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans JBoss EAP 6, la méthode d'activation du clustering dépend si les serveurs sont autonomes ou s'ils exécutent dans un domaine géré.Activer le clustering pour les serveurs qui exécutent dans un domaine géré
Pour activer le clustering pour les serveurs déjà démarrés, qui utilisent le contrôleur de domaines, mettez à jour votredomain.xml
et désignez un groupe de serveurs qui utilise le profilha
et un groupe de liaisons de socketsha-sockets
. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Activer le clustering pour les serveurs autonomes
Afin d'activer le clustering dans les serveurs autonomes, démarrez le serveur par le fichier de configuration qui convient comme suit :EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME
$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME$ EAP_HOME/bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Indiquer l'adresse de liaison
Dans JBoss EAP 5.x, vous devez normalement indiquer l'adresse de liaison utilisée pour le clustering avec l'argument de ligne de commande-b
comme suit :EAP5_HOME/bin/run.sh -c all -b 192.168.0.2
$ EAP5_HOME/bin/run.sh -c all -b 192.168.0.2$ EAP5_HOME/bin/run.sh -c all -b 192.168.0.2$ EAP5_HOME/bin/run.sh -c all -b 192.168.0.2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JBoss EAP 6 relie les sockets aux adresses IP et aux interfaces contenues dans les éléments<interfaces>
des fichiersstandalone.xml
,domain.xml
ethost.xml
. Les configurations standards fournies dans JBoss EAP incluent deux configurations d'interface :Ces configurations d'interface utilisent les valeurs des propriétés systèmeCopy to Clipboard Copied! Toggle word wrap Toggle overflow jboss.bind.address.management
etjboss.bind.address
. Si ces propriétés système ne sont pas définies, la valeur par défaut127.0.0.1
sera utilisée pour chaque valeur.Vous pouvez également spécifier l'adresse de liaison en argument de ligne de commande lorsque vous démarrez le serveur ou vous pouvez la définir explicitement dans le fichier de configuration du serveur JBoss EAP 6.- Spécifier l'argument de liaison en ligne de commande quand vous démarrez le serveur JBoss EAP autonome.L'exemple suivant explique comment indiquer l'adresse de liaison en ligne de commande pour un serveur autonome :
EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1
EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Vous pouvez également faire usage de l'argument-b
, un raccourci de-Djboss.bind.address=127.0.0.1
:EAP_HOME/bin/standalone.sh -b=127.0.0.1
EAP_HOME/bin/standalone.sh -b=127.0.0.1EAP_HOME/bin/standalone.sh -b=127.0.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Le format de syntaxe JBoss EAP 5 est également pris en charge :Notez que l'argumentEAP_HOME/bin/standalone.sh -b 127.0.0.1
EAP_HOME/bin/standalone.sh -b 127.0.0.1EAP_HOME/bin/standalone.sh -b 127.0.0.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -b
ne fait que changer l'interfacepublique
. Il n'affecte pas l'interface demanagement
. - Indiquer l'adresse de liaison dans le fichier de configuration du serveur.Pour les serveurs qui exécutent en domaines gérés, indiquer les adresses de liaison dans le fichier
domain/configuration/host.xml
. Pour les serveurs autonomes, indiquer les adresses de liaison dans le fichierstandalone-ha.xml
.Dans l'exemple suivant, l'interfacepublic
est spécifiée comme interface par défaut pour tous les sockets au sein du groupe de liaison de socketha-sockets
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>
<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Si vous spécifiez l'adresse de liaison sous forme de valeur codée en dur et non pas sous forme de propriété système de configuration, vous ne pourrez pas remplacer cette valeur codée par un argument en ligne de commande.
Configurer
jvmRoute
pour supporter mod_jk et mod_proxyDans JBoss EAP 5, le serveur webjvmRoute
a été configuré à l'aide d'une propriété dans le fichierserver.xml
. Dans JBoss EAP 6, l'attributjvmRoute
est configuré dans le sous-système web du fichier de configuration de serveur à l'aide de l'attributinstance-id
comme suit :{JVM_ROUTE_SERVER} ci-dessus doit être remplacé par l'ID du serveur jvmRoute.<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">
Copy to Clipboard Copied! Toggle word wrap Toggle overflow instance-id
peut également être défini par le biais de la console de gestion.Indiquer l'adresse multidiffusion et le port
Dans JBoss EAP 5.x, vous pouvez spécifier l'adresse multidiffusion et le port utilisés pour les communications intra-cluster par les arguments de ligne de commande-u
et-m
, respectivement, comme ceci :EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688
$ EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688$ EAP5_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans JBoss EAP 6, vous pouvez spécifier l'adresse multidiffusion et le port utilisés pour la communication entre les cluster par la liaison de socket référencée par la pile de protocoles JGroup qui convient.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Si vous voulez spécifier l'adresse de multidiffusion et le port dans la ligne de commande, vous pouvez définir l'adresse de multidiffusion et les ports comme des propriétés système et ensuite utiliser ces propriétés sur la ligne de commande lorsque vous démarrez le serveur. Dans l'exemple suivant,Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss.mcast.addr
est le nom de la variable pour l'adresse de multidiffusion etjboss.mcast.port
est le nom de la variable pour le port.Vous pouvez alors démarrer votre serveur en utilisant les arguments de ligne de commande suivants :<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>
<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688
$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Utiliser une pile de protocoles différente
Dans JBoss EAP 5.x, vous pouviez manipuler la pile de protocoles par défaut utilisée pour tous les services de clustering qui utilisaient la propriété systèmejboss.default.jgroups.stack
.EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp
$ EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp$ EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp$ EAP5_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans JBoss EAP 6, la pile de protocoles par défaut est définie par le sous-système JGroups dansdomain.xml
oustandalone-ha.xml
:<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem>
<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <!-- ... --> </stack> </subsystem>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Remplacer la réplication de Buddy
JBoss EAP 5.x utilise JBoss Cache Buddy Replication pour supprimer la réplication des données dans toutes les instances d'un cluster.Dans JBoss EAP 6, la réplication de Buddy a été remplacée par le cache distribué d'Infinispan, connu également sous le nom modeDIST
. La distribution est un mode de gestion de clusters puissant qui permet à Infinispan de mettre à échelle en linéaire lorsque un certain nombre de serveurs sont ajoutés au cluster. Voici un exemple sur la façon de configurer le serveur pour utiliser le mode de mise en cache de DIST.- Ouvrir une ligne de commandes et démarrer le serveur avec un Profil HA ou un FUll Profile, comme par exemple :
EAP_HOME/bin/standalone.sh -c standalone-ha.xml
EAP_HOME/bin/standalone.sh -c standalone-ha.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ouvrir une nouvelle ligne de commandes et connectez-vous au Management CLI.
- Dans Linux, saisir ce qui suit au niveau de la ligne de commande :
EAP_HOME/bin/jboss-cli.sh --connect
$ EAP_HOME/bin/jboss-cli.sh --connect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Dans Windows, saisir ce qui suit au niveau de la ligne de commande :
C:\>EAP_HOME\bin\jboss-cli.bat --connect
C:\>EAP_HOME\bin\jboss-cli.bat --connect
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vous devriez voir apparaître le résultat suivant :Connected to standalone controller at localhost:9999
Connected to standalone controller at localhost:9999
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Lancer les commandes suivantes :
/subsystem=infinispan/cache-container=web/:write-attribute(name=default-cache,value=dist) /subsystem=infinispan/cache-container=web/distributed-cache=dist/:write-attribute(name=owners,value=3) :reload
/subsystem=infinispan/cache-container=web/:write-attribute(name=default-cache,value=dist) /subsystem=infinispan/cache-container=web/distributed-cache=dist/:write-attribute(name=owners,value=3) :reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous devriez voir la réponse suivante après chaque commande :"outcome" => "success"
"outcome" => "success"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ces commandes modifient l'élémentdist
<distributed-cache>
dans la configurationweb
<cache-container>
du sous-systèmeinfinispan
du fichierstandalone-ha.xml
comme suit :Pour plus d'informations, voir le chapitre intitulé Clustering in Web Applications du Development Guide de JBoss EAP 6 qui se situe dans le Portail clients https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow