Cluster com JBoss AS 7 e Balanceamento com Apache

Para configurar um cluster com JBoss AS 7 iremos utilizar o mod_cluster no Apache HTTP Server. O Apache funcionará como um load balancer para o nosso cluster de JBoss e será o ponto de entrada para as aplicações. Anteriormente eu utilizava o mod_jk, mas com o mod_cluster temos várias vantagens:

  • Configuração dinâmica dos workers. No mod_jk isso era feito através de um arquivo e agora com o mod_cluster, não é mais necessário. Pode-se configurar uma lista fixa ou o próprio application server pode se publicar como um worker.
  • Fator de balanceamento no server. Dessa maneira o load balancer consegue ter métricas mais apuradas e adequadas para efetuar o balanceamento de forma eficiente.
  • O AJP é opcional.
  • E muitos outros recursos que podem ser vistos nesse documento.

Faça o download do mod_cluster: http://www.jboss.org/mod_cluster/downloads para a sua plataforma. Se você escolher o download dos binários, ele irá ter o Apache HTTP Server já configurado com o mod_cluster. Caso você já tenha o Apache, escolha a opção "dynamic libraries". No meu caso vou escolher a opção completa, pois quero utilizar um apache separado. Extrair na raiz para que ele crie a seguinte pasta: /opt/jboss/httpd.

Abra o arquivo: /opt/jboss/httpd/httpd/conf/httpd.conf e procure pelo seguinte conteúdo no final do arquivo:

# MOD_CLUSTER_ADDS
# Adjust to you hostname and subnet.
<IfModule manager_module>
  Listen 127.0.0.1:6666
  ManagerBalancerName mycluster
  <VirtualHost 127.0.0.1:6666>
    <Location />
     Order deny,allow
     Deny from all
     Allow from 127.0.0
    </Location>

    KeepAliveTimeout 300
    MaxKeepAliveRequests 0
    #ServerAdvertise on http://@IP@:6666
    AdvertiseFrequency 5
    #AdvertiseSecurityKey secret
    #AdvertiseGroup @ADVIP@:23364

    <Location /mod_cluster_manager>
       SetHandler mod_cluster-manager
       Order deny,allow
       Deny from all
       Allow from 127.0.0
    </Location>

  </VirtualHost>
</IfModule>

Altere os dados de acordo, mudando para o hostname ou ip da sua máquina. Pronto a etapa de configuração do httpd já está completa.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6