Como Criar Cluster com JBoss e Apache

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_NODEVALOR_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.