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.