3.2.8. Alterações no Clustering


3.2.8.1. Realização de Alterações ao seu Aplicativo para Clustering

  1. Inicie o JBoss EAP 6 com o clustering habilitado

    Para habilitar o clustering no JBoss EAP 5.x, era preciso iniciar as instâncias do seu servidor usando o perfil all ou alguma derivação disto, como por exemplo:
    $ EAP5_HOME/bin/run.sh -c all$ EAP5_HOME/bin/run.sh -c all$ EAP5_HOME/bin/run.sh -c all
    Copy to Clipboard Toggle word wrap
    No JBoss EAP 6, o método para a habilitação do clustering depende se os servidores estão executando em um domínio gerenciado ou se são autônomos.
    1. Habilitação do clustering para os servidores executando em um domínio gerenciado

      Para habilitar o clustering para os servidores iniciados usando o controlador de domínio, atualize o seu domain.xml e designe um grupo de servidor para usar o perfil ha e o grupo de associação de soquete ha-sockets. Por exemplo:
      <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>
      Copy to Clipboard Toggle word wrap
    2. Habilitação do cluster para servidores autônomos

      Para habilitar o clustering para os servidores autônomos, inicie o servidor usando o arquivo de configuração apropriado como a seguir:
      $ 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 Toggle word wrap
  2. Especifique o endereço vinculado

    No JBoss EAP 5.x, você normalmente indicaria o endereço vinculado usado para clustering utilizando o argumento da linha de comando -b, conforme abaixo:
    $ 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 Toggle word wrap
    O JBoss EAP 6 associa os soquetes às interfaces e aos endereços IP contidos nos elementos <interfaces> nos arquivos standalone.xml, domain.xml e host.xml. As configurações padrão que são enviadas junto com o JBoss EAP incluem duas configurações de interface:
    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
           <inet-address value="${jboss.bind.address:127.0.0.1}"/>
        </interface>
    </interfaces>
    Copy to Clipboard Toggle word wrap
    Essas configurações de interface usam os valores das propriedades do sistema jboss.bind.address.management e jboss.bind.address. Caso essas propriedades do sistema não sejam determinadas, o padrão 127.0.0.1 é usado para cada valor.
    O endereço vinculado também pode ser especificado como um argumento da linha de comando quando você inicia o servidor ou pode ser explicitamente definido dentro do arquivo de configuração do servidor JBoss EAP 6.
    • Especifique o argumento vinculado na linha de comando quando iniciar o servidor autônomo do JBoss EAP.
      Segue abaixo um exemplo de como especificar o endereço vinculado na linha de comando para um servidor autônomo:
      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 Toggle word wrap

      Nota

      É possível usar o argumento -b, que é um atalho para -Djboss.bind.address=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 Toggle word wrap
      O formato da sintaxe do JBoss EAP 5 ainda possui suporte também:
      EAP_HOME/bin/standalone.sh -b 127.0.0.1EAP_HOME/bin/standalone.sh -b 127.0.0.1
      Copy to Clipboard Toggle word wrap
      Observe que o argumento -b apenas altera a interface public. Isto não afeta a interface management.
    • Especifique o endereço vinculado no arquivo de configuração do servidor.
      Para os servidores executando em um domínio gerenciado, especifique os endereços vinculados no arquivo domain/configuration/host.xml. Para os servidores autônomos, especifique os endereços vinculados no arquivo standalone-ha.xml.
      No exemplo a seguir, a interface public é especificada como a interface padrão para todos os soquetes dentro do grupo de associação de soquete ha-sockets.
      <interfaces>
        <interface name="management">
          <inet-address value="192.168.0.2"/>
        </interface>
        <interface name="public">
          <inet-address value="192.168.0.2"/>
        </interface>
      </interfaces>
      Copy to Clipboard Toggle word wrap
      <socket-binding-groups>
        <socket-binding-group name="ha-sockets" default-interface="public">
          <!-- ... -->
        </socket-binding-group>
      </socket-binding-groups>
      Copy to Clipboard Toggle word wrap

      Nota

      Caso o endereço vinculado seja especificado como um valor codificado, ao invés de uma propriedade do sistema no arquivo de configuração, não será possível substituí-lo por um argumento da linha de comando.
  3. Configure jvmRoute para suportar mod_jk e mod_proxy

    No JBoss EAP 5, o servidor web jvmRoute foi configurado usando uma propriedade no arquivo server.xml. No JBoss EAP 6, o atributo jvmRoute é configurado no subsistema da web do arquivo de combinação do servidor usando o atributo instance-id, conforme o seguinte:
    <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false" instance-id="{JVM_ROUTE_SERVER}">
    
    Copy to Clipboard Toggle word wrap
    O {JVM_ROUTE_SERVER} acima deve ser substituído pela ID do servidor jvmRoute.
    O instance-id pode ser determinado usando o Console de Gerenciamento.
  4. Especifique a porta e o endereço multicast

    No JBoss EAP 5.x, você poderia especificar a porta e o endereço multicast usados para a comunicação intra-cluster utilizando os argumentos da linha de comando -u e -m, como a seguir:
    $ 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 Toggle word wrap
    No JBoss EAP 6, a porta e o endereço multicast usados para a comunicação intra-cluster são definidos pela associação de soquete referenciada pela pilha do protocolo JGroups relevante, como a seguir:
    <subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp">
        <stack name="udp">
            <transport type="UDP" socket-binding="jgroups-udp"/>
            <!-- ... -->
        </stack>
    </subsystem>
    Copy to Clipboard Toggle word wrap
    <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>
    
    Copy to Clipboard Toggle word wrap
    Se você preferir especificar a porta e o endereço multicast na linha de comando, você pode definir as portas e o endereço multicast como propriedades de sistema e, então, usar essas propriedades na linha de comando, quando você iniciar o servidor. No exemplo a seguir, jboss.mcast.addr é o nome da variável para o endereço multicast e jboss.mcast.port é o nome da variável para a porta.
    <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 Toggle word wrap
    Você pode, então, iniciar o seu servidor usando os seguintes argumentos da linha de comando:
    $ 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 Toggle word wrap
  5. Utilize uma pilha de protocolo alternativa

    No JBoss EAP 5.x, você poderia manipular a pilha do protocolo padrão usada para todos os serviços de clustering utilizando a propriedade do sistema jboss.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
    Copy to Clipboard Toggle word wrap
    No JBoss EAP 6, a pilha do protocolo padrão é definida pelo subsistema JGroups dentro do domain.xml ou standalone-ha.xml:
    <subsystem xmlns="urn:jboss:domain:jgroups:1.0" default-stack="udp">
        <stack name="udp">
            <!-- ... -->
        </stack>
    </subsystem>
    Copy to Clipboard Toggle word wrap
  6. Substitue a Replicação Buddy

    O JBoss EAP 5.x usava a JBoss Cache Buddy Replication para suprimir a replicação de dados em todas as instâncias em um cluster.
    No JBoss EAP 6, a Replicação Buddy foi substituída pelo cache distribuído do Infinispan, também conhecido como modo DIST. A distribuição é um modo de clustering poderoso que permite o Infinispan escalar linearmente à medida que mais servidores são adicionados ao cluster. Segue abaixo um exemplo de como configurar o servidor para usar o modo de cache DIST.
    1. Abra uma linha de comando e inicie o servidor com o Perfil HA ou o Perfil Completo. Por exemplo:
      EAP_HOME/bin/standalone.sh -c standalone-ha.xml
      Copy to Clipboard Toggle word wrap
    2. Abra outra linha de comando e conecte-se ao Gerenciamento CLI.
      • Para o Linux, insire a seguinte linha de comando:
        $ EAP_HOME/bin/jboss-cli.sh --connect
        
        Copy to Clipboard Toggle word wrap
      • Para o Windows, insire a seguinte linha de comando:
        C:\>EAP_HOME\bin\jboss-cli.bat --connect
        
        Copy to Clipboard Toggle word wrap
      Você deverá encontrar a seguinte resposta:
      Conectado ao controlador autônomo em localhost:9999
      Copy to Clipboard Toggle word wrap
    3. Emita os seguintes comandos:
      /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 Toggle word wrap
      Você deverá encontrar a seguinte resposta após cada comando:
      "outcome" => "success"
      
      Copy to Clipboard Toggle word wrap
      Esses comandos modificam o elemento dist <distributed-cache> na configuração web <cache-container> no subsistema infinispan do arquivo standalone-ha.xml, como a seguir:
      <cache-container name="web" aliases="standard-session-cache" default-cache="dist" module="org.jboss.as.clustering.web.infinispan">
          <transport lock-timeout="60000"/>
          <replicated-cache name="repl" mode="ASYNC" batching="true">
              <file-store/>
          </replicated-cache>
          <replicated-cache name="sso" mode="SYNC" batching="true"/>
          <distributed-cache name="dist" owners="3" l1-lifespan="0" mode="ASYNC" batching="true">
              <file-store/>
          </distributed-cache>
      </cache-container>
      
      Copy to Clipboard Toggle word wrap
      Para mais informações, consulte o capítulo entitulado Clustering in Web Applications no guia Development Guide do JBoss EAP 6 localizado no Portal do Consumidor https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat