Atenção: esse artigo tem um vídeo complementar. Clique e assista!
O JBoss Application Server 5 pode ser alterado de acordo com as necessidades de cada aplicação, resultando em maior performance, segurança, escalabilidade, alta disponibilidade entre inúmeros fatores que fazem diferença ao entrar em produção ou até mesmo agilizando o processo de desenvolvimento. Neste artigo veremos 10 dicas de tuning e boas práticas para customizar seu JBoss AS 5.
Para que serve:
Este artigo demonstra 10 dicas de tuning de JBoss Application Server 5 que poderão ser aplicadas em diversos casos do mundo corporativo.
Em que situação o tema é útil:
O artigo atualiza o leitor em relação a características que podem ser tunadas no JBoss Application Server 5, trazendo diferenças significativas em um ambiente de produção ou até mesmo agilizando o desenvolvimento.
Turbinando o JBoss AS 5:
Para tirar maior proveito da flexibilidade do JBoss AS 5, você poderá tunar seus serviços conforme suas necessidades, fazendo com que ele possa ter respostas mais rápidas à sua demanda ou facilitar as atividades de manutenção.
Dentre as inúmeras características e serviços que podem ser
tunados, selecionamos alguns dos principais e os transformamos em 10 dicas que
poderão fazer a diferença em seu ambiente de produção e até mesmo no seu
ambiente de desenvolvimento.
Autores: Bruno Rossetto Machado, Leandro Abite e Raul Leite
O JBoss Application Server 5, ou simplesmente JBoss AS 5, é a mais recente versão do mais utilizado Servidor de Aplicações Java EE na atualidade. Para tirar maior proveito da flexibilidade deste servidor de aplicações, você poderá personalizar, customizar ou simplesmente tunar seus serviços conforme suas necessidades, fazendo com que ele possa ter respostas mais rápidas à sua demanda ou facilitar as atividades de manutenção.
Tuning
Tuning é uma expressão inglesa que é sinônima de customização, sendo muito utilizada no mundo automobilístico. O Tuning consiste basicamente em alterar as características originais de um carro, chegando a um nível de personalização extrema, com o objetivo de expressar principalmente o gosto do seu dono, deixando o automóvel com maior performance, beleza e segurança, tornando-o diferente e único.
Deixando um pouco o mundo dos automóveis, o tuning pode ser aplicado em diferentes contextos, como Servidores de Aplicações, Sistemas Operacionais, Redes, etc. No nosso caso, teremos um servidor de aplicações totalmente customizado às nossas necessidades, com o uso eficaz de recursos do servidor físico (como CPU, memória, disco, entre outros).
Neste artigo detalharemos 10 dicas que poderão ser aplicadas ao JBoss AS 5 para demonstrarmos sua flexibilidade e facilidade de customização, abordando como foco principal dicas para o ambiente de produção.
1) Retirando serviços do JBoss AS 5
O JBoss AS vem com diferentes profiles para serem utilizados de acordo com a necessidade da aplicação, no entanto, é possível personalizar esses profiles para que tenham somente os serviços necessários para o seu ambiente. Existem diversas vantagens em ter um profile personalizado, como melhor utilização dos recursos computacionais disponíveis em seu ambiente e utilização apenas dos serviços que serão utilizados pela aplicação, evitando consumo desnecessário de memória, CPU ou disco; portanto, melhorando o tempo de inicialização e resposta do servidor de aplicação.
Para remover um serviço do JBoss AS basta apagar o arquivo ou diretório referente ao serviço desejado, que está dentro de $JBOSS_HOME/server/<profile>/deploy e suas respectivas libs, que estão dentro de $JBOSS_HOME/common/lib. A Tabela 1 contém uma lista dos arquivos de cada serviço que devem ser apagados para remover determinado serviço do JBoss AS.
Serviço |
Descrição |
Arquivos |
|
Serviço para envio de e-mail |
$JBOSS_HOME/server/<profile>/deploy/mail-service.xml $JBOSS_HOME/server/<profile>/deploy/mail-ra.rar |
Cache invalidation service |
Serviço para controle de cache de EJB via JMS |
$JBOSS_HOME/server/<profile>/deploy/cache-invalidation-service.xml |
HSQL DB *** |
Banco de dados Java |
$JBOSS_HOME/server/<profile>/deploy/hsqldb-ds.xml $JBOSS_HOME/common/lib/hsqldb-plugin.jar $JBOSS_HOME/common/lib/hsqldb.jar |
JMS Service |
Serviço de mensageria |
$JBOSS_HOME/server/<profile>/deploy/jms-ra.rar $JBOSS_HOME/server/<profile>/deploy/messaging |
JMX Console |
Aplicativo de gerenciamento - jmx-console |
$JBOSS_HOME/server/<profile>/deploy/jmx-console.war |
WEB Console |
Aplicativo de gerenciamento - web-console |
$JBOSS_HOME/server/<profile>/deploy/management |
Schedule Manager |
Serviço para agendar execução de jobs |
$JBOSS_HOME/server/<profile>/deploy/schedule-manager-service.xml $JBOSS_HOME/server/<profile>/deploy/scheduler-service.xml $JBOSS_HOME/common/lib/scheduler-plugin.jar $JBOSS_HOME/common/lib/scheduler-plugin-example.jar |
Quartz |
Serviço para agendar execução de Jobs |
$JBOSS_HOME/server/<profile>/deploy/quartz-ra.rar $JBOSS_HOME/common/lib/quartz.jar |
HTTP Invoker |
Chamada RMI/HTTP para Mbeans e EJBs |
$JBOSS_HOME/server/<profile>/deploy/http-invoker.sar |
Key Generator |
Serviços para geração de valores para Chaves Primárias |
$JBOSS_HOME/server/<profile>/deploy/uuid-key-generator.sar |
EJB |
Enterprise Java Beans |
$JBOSS_HOME/server/<profile>/deploy/ejb3-interceptors-aop.xml $JBOSS_HOME/server/<profile>/deploy/ejb2-timer-service.xml $JBOSS_HOME/server/<profile>/deploy/ejb2-container-jboss-beans.xml $JBOSS_HOME/server/<profile>/deploy/ejb3-connectors-jboss-beans.xml $JBOSS_HOME/server/<profile>/deploy/ejb3-timerservice-jboss-beans.xml $JBOSS_HOME/server/<profile>/deploy/ejb3-container-jboss-beans.xml $JBOSS_HOME/server/<profile>/deploy/profileservice-secured.jar |
Tabela 1. Serviços que podem ser excluídos.
2) Múltiplas instâncias
JVMs com a área de heap pequena são mais rápidas que JVMs com a área de heap muito grande. Dessa forma, ao invés de configurar um JBoss AS com uma heap de 8GB, por exemplo, é muito mais performático dividir em duas instâncias de 4GB ou até mesmo quatro instâncias de 2GB e fazer um balanceamento de carga entre estas instâncias através do Apache Web Server com mod_cluster, mod_jk, mod_proxy e mod_proxy_ajp ou algum outro balanceador de carga. Veja o tópico “4) Balanceamento de carga com mod_cluster” para um exemplo de configuração de balanceamento de carga.
Assim como o mod_jk, os módulos mod_proxy e mod_proxy_ajp também servem para balanceamento de carga, sendo que estes possuem menos parâmetros para customização, tornando mais fácil sua configuração.
O mod_cluster usa o mod_proxy_ajp por trás dos panos para realizar seu balanceamento de carga, sendo que ele possui um mecanismo de obtenção de informações sobre o comportamento dos servidores que compõem a arquitetura de balanceamento, tendo uma inteligência maior e mais efetiva que os outros dois módulos.
3) Binding service
O novo serviço de portas mantém basicamente a mesma funcionalidade de seu antecessor, mas permite fazer a associação do “alias” desejado de forma mais prática. O alias ports-default, que vem configurado na instalação “de fábrica” do JBoss AS, realiza a associação de portas conforme a Tabela 2.
Porta |
Tipo |
Nome do serviço |
Nome do atributo ... |
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.