jud con presentation_brazil_sergio-fantin

32
Clustering para Alta Disponibilidade (HA) em JBoss AS 7 Sergio Fantin Solution Architect [email protected]

Upload: serjaumfantin

Post on 13-Apr-2017

2.285 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Jud con presentation_brazil_sergio-fantin

Clustering para Alta Disponibilidade (HA) em

JBoss AS 7

Sergio Fantin Solution Architect [email protected]

Page 2: Jud con presentation_brazil_sergio-fantin

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

Page 3: Jud con presentation_brazil_sergio-fantin

Agenda

• JBoss AS 7

• Standalone X Domain

• JGroups/Infinispan

• mod_cluster

• Demo

• Perguntas

Page 4: Jud con presentation_brazil_sergio-fantin

JBoss AS 7

• Rápido!

• Arquivos de configuração simplificados:

• domain.xml/host.xml, standalone.xml

• Leve

• Domains

• Novas ferramentas de gerenciamento

Page 5: Jud con presentation_brazil_sergio-fantin

JBoss AS 7

Page 6: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 - Standalone X Domain

Page 7: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Domain Exemplo

Page 8: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Gerenciamento

Page 9: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Gerenciamento

Page 10: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Módulos

Page 11: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Perfis

Page 12: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Perfis HA

Page 13: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Infinispan e JGroups

Page 14: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – JGroups

Page 15: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – JGroups

Page 16: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – Infinispan

Page 17: Jud con presentation_brazil_sergio-fantin

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

Page 18: Jud con presentation_brazil_sergio-fantin

mod_cluster – Arquitetura

Page 19: Jud con presentation_brazil_sergio-fantin

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;

Page 20: Jud con presentation_brazil_sergio-fantin

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!

Page 21: Jud con presentation_brazil_sergio-fantin

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

Page 22: Jud con presentation_brazil_sergio-fantin

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;

Page 23: Jud con presentation_brazil_sergio-fantin

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;

Page 24: Jud con presentation_brazil_sergio-fantin

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!

Page 25: Jud con presentation_brazil_sergio-fantin

mod_cluster – Instalação

• http://www.jboss.org/mod_cluster/downloads

Page 26: Jud con presentation_brazil_sergio-fantin

mod_cluster – Módulos utilizados

mod_proxy_cluster.somod_advertise.somod_slotmem.somod_manager.so

Page 27: Jud con presentation_brazil_sergio-fantin

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>

Page 28: Jud con presentation_brazil_sergio-fantin

JBoss AS 7 – web.xml

Page 29: Jud con presentation_brazil_sergio-fantin

Demo

Page 30: Jud con presentation_brazil_sergio-fantin

Perguntas?

Page 31: Jud con presentation_brazil_sergio-fantin

Obrigado!

Page 32: Jud con presentation_brazil_sergio-fantin

Sergio Fantin Solution Architect [email protected]