jud con presentation_brazil_sergio-fantin
TRANSCRIPT
Clustering para Alta Disponibilidade (HA) em
JBoss AS 7
Sergio Fantin Solution Architect [email protected]
Quem é Sergio Fantin?
• Solution Architect na Red Hat
• Trabalha com Finanças e Contas Estratégicas
• Quase 10 anos de experiência com Java
• Especialidades: JBoss AS, EJB, JSF, RichFaces
• Contribuidor de artigos revista Java Magazine
• Sun Java Certifications
• Blog: serjaum.wordpress.com
Agenda
• JBoss AS 7
• Standalone X Domain
• JGroups/Infinispan
• mod_cluster
• Demo
• Perguntas
JBoss AS 7
• Rápido!
• Arquivos de configuração simplificados:
• domain.xml/host.xml, standalone.xml
• Leve
• Domains
• Novas ferramentas de gerenciamento
JBoss AS 7
JBoss AS 7 - Standalone X Domain
JBoss AS 7 – Domain Exemplo
JBoss AS 7 – Gerenciamento
JBoss AS 7 – Gerenciamento
JBoss AS 7 – Módulos
JBoss AS 7 – Perfis
JBoss AS 7 – Perfis HA
JBoss AS 7 – Infinispan e JGroups
JBoss AS 7 – JGroups
JBoss AS 7 – JGroups
JBoss AS 7 – Infinispan
O que é mod_cluster
• Conjunto de módulos para Apache httpd e web
server baseado em Tomcat:
• JBoss AS 5.0.0.GA+, JBoss Web 2.1.1+, Tomcat 6;
• Permite que httpd aja como um balanceador de
carga
• Similar ao mod_jk e mod_proxy_balancer;
• Projeto JBoss.org:
• http://www.jboss.org/mod_cluster
mod_cluster – Arquitetura
mod_cluster – Vantagens
• Configuração:
• httpd não precisa saber antecipadamente da
topologia do cluster;
• mínima configuração do httpd;
• dinâmico;
• Balanceamento de carga melhorado:
• cálculos feitos nos servidores back-end, onde as
informações estão disponíveis;
• Maior controle do ciclo de vida da webapp:
• undeploy de nós sem erro 404;
mod_cluster – Configuração dinâmica
• As instâncias se registram com o httpd no
startup;
• Nenhuma configuração estática é necessária:
• workers.properties
• uriworkermap.properties
• Servidores httpd se anunciam às instâncias via
multicast:
• Nenhuma configuração de topologia!
mod_jk – workers.properties
worker.list=lb
worker.lb.type=lbworker.lb.balance_workers=node1,node2
worker.node1.type=ajp13worker.node1.host=192.168.2.1worker.node1.port=8009worker.node1.lbfactor=1
worker.node2.type=ajp13worker.node2.host=192.168.2.2worker.node2.port=8009worker.node2.lbfactor=1
mod_cluster
Balanceador de carga aprimorado• As instâncias dizem ao httpd periodicamente
qual a carga que podem suportar:
• ”Load Balance Factor”: número entre 1 e 100;
• balanceador de carga utiliza fatores para tomada de
decisão;
• instâncias utilizam um conjunto de métricas para
derivar o fator;
mod_cluster
Carregamento de métricas • Uma métrica rastreada pela instância é
utilizada para decidir o quão carrega ela está:
• utilização de Heap;
• utilização de CPU;
• Altamente configurável:
• rastreie as métricas e workload relevantes
específicas para sua aplicação;
mod_cluster – Métricas disponíveis
• Utilização da camada web:
• sessões ativas, número de conexões, bytes
enviados, bytes recebidos, contador de requisições;
• Utilização do sistema:
• utilização da CPU, memória do sistema utilizada,
memória heap utilizada, número de threads
• Pool de conexão JCA utilizado;
• Escreva sua própria métrica, se quiser!
mod_cluster – Instalação
• http://www.jboss.org/mod_cluster/downloads
mod_cluster – Módulos utilizados
mod_proxy_cluster.somod_advertise.somod_slotmem.somod_manager.so
mod_cluster – httpd.conf LoadModule slotmem_module modules/mod_slotmem.so LoadModule manager_module modules/mod_manager.so LoadModule proxy_cluster_module modules/mod_proxy_cluster.so LoadModule advertise_module modules/mod_advertise.so
Listen 192.168.122.146:10001 <VirtualHost 192.168.122.146:10001>
<Location /mod_cluster-manager> SetHandler mod_cluster-manager Order deny,allow Deny from all Allow from 192.168.122. # Allow from all </Location>
KeepAliveTimeout 60 MaxKeepAliveRequests 0 ManagerBalancerName mycluster ServerAdvertise On EnableMCPMReceive
</VirtualHost>
JBoss AS 7 – web.xml
Demo
Perguntas?
Obrigado!
Sergio Fantin Solution Architect [email protected]