3.2.7. Changements Clustering

3.2.7.1. Changements à votre application pour le clustering

Procédure 3.22. 

  1. 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 profil all 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é.
    1. 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 votre domain.xml et désignez un groupe de serveurs qui utilise le profil ha et un groupe de liaisons de sockets ha-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>
      
    2. 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
  2. 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 fichier domain/configuration/host.xml. Pour les serveurs autonomes, les adresses de liaisons sont indiquées dans le fichier standalone-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'interface public est spécifiée comme interface par défaut pour tous les sockets au sein du groupe de liaison de socket ha-sockets.
  3. Configurer jvmRoute pour supporter mod_jk et mod_proxy

    Dans JBoss Enterprise Application Platform 5, le serveur web jvmRoute a été configuré à l'aide d'une propriété dans le fichier server.xml. Dans JBoss Enterprise Application Platform 6, l'attribut jvmRoute est configuré dans le sous-système web du fichier de configuration de serveur à l'aide de l'attribut instance-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.
  4. 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 et jboss.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
  5. 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ème jboss.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 dans domain.xml ou standalone-ha.xml:
    <subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp">
        <stack name="udp">
            <!-- ... -->
        </stack>
    </subsystem>