3.2.7. Changements Clustering
3.2.7.1. Changements à votre application pour le clustering
Procédure 3.22.
Démarrez JBoss Enterprise Application Platform 6 avec le clustering activé
Pour activer le clustering dans JBoss Enterprise Application Platform 5.x, vous devrez démarrer vos instances de serveur avec le profilall
ou une de ses dérivations, comme :$ EAP5_HOME/bin/run.sh -c all
Dans JBoss Enterprise Application Platform 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 :<server-groups> <server-group name="main-server-group" profile="ha"> <jvm name="default"> <heap size="64m" max-size="512m"/> </jvm> <socket-binding-group ref="ha-sockets"/> </server-group> </server-group>
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
Indiquer l'adresse de liaison
Dans JBoss Enterprise Application Platform 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 :$ EAP_HOME/bin/run.sh -c all -b 192.168.0.2
Dans JBoss Enterprise Application Platform 6, les adresses de liaisons sont explicitement définies par les liaisons de socket qui conviennent dans les fichiers de configuration de JBoss Enterprise Application Platform 6. Pour les serveurs démarrés par le contrôleur de domaine, les adresses de liaisons sont indiquées dans le fichierdomain/configuration/host.xml
. Pour les serveurs autonomes, les adresses de liaisons sont indiquées dans le fichierstandalone-ha.xml
:<interfaces> <interface name="management"> <inet-address value="192.168.0.2"/> </interface> <interface name="public"> <inet-address value="192.168.0.2"/> </interface> </interfaces>
<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> </socket-binding-group> </socket-binding-groups>
Dans l'exemple ci-dessus, l'interfacepublic
est spécifiée comme interface par défaut pour tous les sockets au sein du groupe de liaison de socketha-sockets
.Configurer
jvmRoute
pour supporter mod_jk et mod_proxyDans JBoss Enterprise Application Platform 5, le serveur webjvmRoute
a été configuré à l'aide d'une propriété dans le fichierserver.xml
. Dans JBoss Enterprise Application Platform 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 :<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">
{JVM_ROUTE_SERVER} ci-dessus ne doit pas être remplacé par l'ID du serveur jvmRoute.instance-id
peut également être défini par le biais de la console de gestion.Indiquer l'adresse multidiffusion et le port
Dans JBoss Enterprise Application Platform 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 :$ EAP_HOME/bin/run.sh -c all -u 228.11.11.11 -m 45688
Dans JBoss Enterprise Application Platform 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 protocole JGroup qui convient.<subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp"> <stack name="udp"> <transport type="UDP" socket-binding="jgroups-udp"/> <!-- ... --> </stack> </subsystem>
<socket-binding-groups> <socket-binding-group name="ha-sockets" default-interface="public"> <!-- ... --> <socket-binding name="jgroups-udp" port="55200" multicast-address="228.11.11.11" multicast-port="45688"/> <!-- ... --> </socket-binding-group> </socket-binding-groups>
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,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.<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.mcast.addr:230.0.0.4}" multicast-port="${jboss.mcast.port:45688}"/>
Vous pouvez alors démarrer votre serveur en utilisant les arguments de ligne de commande suivants :$ EAP_HOME/bin/domain.sh -Djboss.mcast.addr=228.11.11.11 -Djboss.mcast.port=45688
Utiliser une pile de protocole différente
Dans JBoss Enterprise Application Platform 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
.$ EAP_HOME/bin/run.sh -c all -Djboss.default.jgroups.stack=tcp
Dans JBoss Enterprise Application Platform 6, la pile de protocole 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>