O seminário abordará a introdução e história do JBoss/WildFly, sua arquitetura interna, clusterização, configuração de um ambiente com Apache HTTP Server e testes práticos. Também incluirá dicas para melhorar o desempenho, como ajustes de memória, pool de EJB e estratégias de balanceamento de carga e coleta de lixo.
2. Adriano Schmidt
• Arquiteto de software na Supero Tecnologia desde
2012 e programa em Java desde 2007
• Técnico em Informática - SENAI
• Faculdade de Adm. de Empresas - UNIVILLE
• Mestrado em Administração - UDESC (Cursando)
• SCJP; Cisco CCNA 1 e 2
• Já trabalhou em: SENAI, Datasul, Totvs
3. Agenda
• Introdução e História do JBoss/WildFly
• JBoss por dentro
• Apache HTTP Server
• Cluster
• Mãos na massa!
• Um pouquinho de tunning
6. Introdução
• JBoss/Wildfly é um Application Server desenvolvido
em Java, que visa atender as especificações JavaEE.
• JBoss AS, JBoss EAP, WildFly
• Mantido pela RedHat e é gratuito (GPL)
• História
• EJBoss - 1999 (Enterprise Java Beans Open Source System)
• JBoss 1.0 - 2000
• JBoss 7.0 - 2011
• WildFly 8.0 - 2013
7. JBoss por dentro
• Arquitetura e Pastas
• Standalone x Domain
• Arquivo standalone.xml
• Subsystem (datasource, logging, secutiry)
• Profiles
• Portas: port-offset
8. Apache HTTP Server
• O que é um HTTP Server?
• Ele serve web pages. Espera requests de web browsers
(clientes) e responde enviando os dados requisitados de
volta.
• Apache HTTP Server é o HTTP Server mais
popular. Surgiu em 1996.
• Permite Load Balancer.
• Funciona como Proxy Reverso.
9. Cluster
• Clusterização permite que sejam rodados vários
Application Servers em paralelo.
• Os acessos são distribuídos pelos servers, e
mesmo se um server cair, a aplicação continua
acessível.
• Clusterização ajuda na escalabilidade e
performance. Você pode aumentar a performance
adicionando mais servidores no cluster.
10. Mãos na massa
• Ambiente:
• Apache HTTP Server na frente
• Um JBoss master e dois slaves (todos no modo domain)
• Projetos:
• Systemprops
• exibe propriedades da máquina para testar o load
balancer - System.getProperty("jboss.server.name")
• Cluster-example
• um EJB statefull para testar o cluster
11. Mãos na massa!
JBoss Master JBoss Server1 JBoss Server2
Apache HTTP Server
Cluster
Usuário
12. Um pouquinho de tunning
• Testes de desempenho para identificar gargalos
• JMeter, NewRelic, VisualVM, jConsole, entre outras.
• Escolha da JDK: JRockit!
• Memória: xms, xmx...
• Aumentar o pool de EJB
• http://localhost8080.blogspot.com.br/2013/11/tuning-ejb-pool-jboss-7.html
• Estratégias de load balancer
• Estratégias de garbage collector
• Se usar JSF, talvez migrar para o JSF 2.2
• http://localhost8080.blogspot.com.br/2013/06/jsf-22.html