3.2.8. Alterações no Clustering
3.2.8.1. Realização de Alterações ao seu Aplicativo para Clustering Copiar o linkLink copiado para a área de transferência!
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 perfilallou alguma derivação disto, como por exemplo:EAP5_HOME/bin/run.sh -c all
$ EAP5_HOME/bin/run.sh -c allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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.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 seudomain.xmle designe um grupo de servidor para usar o perfilhae o grupo de associação de soqueteha-sockets. Por exemplo:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow
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.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow O JBoss EAP 6 associa os soquetes às interfaces e aos endereços IP contidos nos elementos<interfaces>nos arquivosstandalone.xml,domain.xmlehost.xml. As configurações padrão que são enviadas junto com o JBoss EAP incluem duas configurações de interface:Essas configurações de interface usam os valores das propriedades do sistemaCopy to Clipboard Copied! Toggle word wrap Toggle overflow jboss.bind.address.managementejboss.bind.address. Caso essas propriedades do sistema não sejam determinadas, o padrão127.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.1
EAP_HOME/bin/standalone.sh -Djboss.bind.address=127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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.1
EAP_HOME/bin/standalone.sh -b=127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow O formato da sintaxe do JBoss EAP 5 ainda possui suporte também:Observe que o argumentoEAP_HOME/bin/standalone.sh -b 127.0.0.1
EAP_HOME/bin/standalone.sh -b 127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow -bapenas altera a interfacepublic. Isto não afeta a interfacemanagement. - 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 arquivostandalone-ha.xml.No exemplo a seguir, a interfacepublicé especificada como a interface padrão para todos os soquetes dentro do grupo de associação de soqueteha-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 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.
Configure
jvmRoutepara suportar mod_jk e mod_proxyNo JBoss EAP 5, o servidor webjvmRoutefoi configurado usando uma propriedade no arquivoserver.xml. No JBoss EAP 6, o atributojvmRouteé configurado no subsistema da web do arquivo de combinação do servidor usando o atributoinstance-id, conforme o seguinte:O {JVM_ROUTE_SERVER} acima deve ser substituído pela ID do servidor 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 Oinstance-idpode ser determinado usando o Console de Gerenciamento.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-ue-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 45688Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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,Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss.mcast.addré o nome da variável para o endereço multicast ejboss.mcast.porté o nome da variável para a porta.Você pode, então, iniciar o seu servidor usando os seguintes argumentos da linha de comando:<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=45688Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 sistemajboss.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=tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow No JBoss EAP 6, a pilha do protocolo padrão é definida pelo subsistema JGroups dentro dodomain.xmloustandalone-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 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 modoDIST. 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.- 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
EAP_HOME/bin/standalone.sh -c standalone-ha.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
$ EAP_HOME/bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Para o Windows, insire a seguinte linha de comando:
C:\>EAP_HOME\bin\jboss-cli.bat --connect
C:\>EAP_HOME\bin\jboss-cli.bat --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Você deverá encontrar a seguinte resposta:Conectado ao controlador autônomo em localhost:9999
Conectado ao controlador autônomo em localhost:9999Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
/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) :reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Você deverá encontrar a seguinte resposta após cada comando:"outcome" => "success"
"outcome" => "success"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Esses comandos modificam o elementodist<distributed-cache>na configuraçãoweb<cache-container>no subsistemainfinispando arquivostandalone-ha.xml, como a seguir: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/.Copy to Clipboard Copied! Toggle word wrap Toggle overflow