Neste artigos vamos abordar como criar Cluster com JBoss e Apache, utilizando o Linux. Nesta implementação utilizamos o Jboss EAP 6.2. Vamos lá!
Criando Cluster com JBoss
Estamos supondo que você já tenha o Jboss EAP, faça uma cópia do Jboss para a quantidade de nós que deseja, por exemplo: jboss-node1, jboss-node2, jboss-node3. Para cada nó você deve fazer as configurações abaixo.
Configurando standalone.conf
Abra o arquivo standalone.conf que fica dentro do diretório /bin do Jboss. No final deste arquivo insira os trechos abaixo:
# Arquivo de configuração xml do Jboss JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone-full-ha.xml" # O valor deste offset deve ser diferente para cada nó, por exemplo, # se você definir um offset de 100, será adicionado mais 100 no valor # de cada porta do Jboss, sugiro que sejá adicionado 100 em cada nó, exemplo: # node1 o offset fica 100, no node2 o offset fica 200, e assim por diante. JAVA_OPTS="$JAVA_OPTS -Djboss.socket.binding.port-offset=<VALOR_DO_OFFSET>" # Crie um nome para referenciar cada nó, esse nome deve ser único em cada nó. JAVA_OPTS="$JAVA_OPTS -Djboss.node.name=<NOME_DO_NODE>"
Alterando arquivo standalone-full-ha.xml
Abra o arquivo standalone-full-ha.xml que fica localizado em standalone/configuration para que possamos alterar alguns valores. Altere o valor de NOME_DO_NODE e VALOR_DO_OFFSET de acordo com o que foi definido no arquivo standalone.conf.
Substitua a linha:
<server xmlns="urn:jboss:domain:1.5">
Pelo código:
<server xmlns="urn:jboss:domain:1.5" name="NOME_DO_NODE">Pelo código:
Agora subtitua a linha:
<subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" native="false">
Pelo código abaixo:
<subsystem xmlns="urn:jboss:domain:web:1.5" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false">
Procure a tag <interfaces> e troque por:
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:0.0.0.0}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface> <interface name="unsecure"> <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/> </interface> </interfaces>
Troque a linha
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
Pelo código:
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:VALOR_DO_OFFSET}">
Substitua a linha:
<mod-cluster-config advertise-socket="modcluster" connector="ajp">
Pelo código:
<mod-cluster-config advertise-socket="modcluster" connector="ajp" proxy-list="127.0.0.1:6666">
Troque o jboss.messaging.cluster.password substituindo o “CHANGE ME“, por:
123
Encontre a tag <subsystem xmlns=”urn:jboss:domain:logging:1.3″> e dentro dela insira o trecho de código:
<console-handler name="CONSOLE"> <level name="INFO"/> <formatter> <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler>
Encontre a tag <handlers> e insira o código abaixo dentro dela:
<handler name="CONSOLE"/>
Configurando Mod_Cluster com Apache
O mod_cluster será utilizado para fazer os redirecionamento dos nós do Jboss. Acesse o link e baixe esse módulo.
Descompacte o módulo, e mova para dentro do diretório /opt/jboss. E então abra o arquivo httpd.conf dentro do diretório /opt/jboss/httpd/httpd/conf.
Troque a linha
#ServerName www.example.com:80
Pelo valor:
ServerName 127.0.0.1:80
Iniciando nodes e apache
Inicie o apache com o comando:
sudo /opt/jboss/httpd/sbin/apachectl start &
Caso queira parar o apache utilize o comando:
sudo /opt/jboss/httpd/sbin/apachectl stop &
Feito isto, vamos iniciar cada nó do Jboss. Acesse cada diretório dos nós e entre na pasta /bin e execute o comando:
nohup ./standalone.sh -b 127.0.0.1 &
Dúvidas?
Você tem outras dúvidas? O tutorial não funcionou? Deixe seu feedback nos comentários abaixo. Bom, espero que essa dica tenha sido útil. Veja também como criar proxy reverso com o tomcat.