Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

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

Mail

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.

HSQLDB é o banco de dados default do JBoss. Alguns dos serviços citados na Tabela 1 precisam de um DataSource para seu funcionamento. Assim, quando o HSQLDB é removido, o Datasource DefaultDS é removido junto com o Banco e um novo DataSource precisa ser configurado em seu lugar, vide dica 9) Trocar o banco de dados nativo. Os serviços que necessitam de um DataSource são EJB, JMS Service, Key Generator e Schedule Manager. Caso não esteja usando nenhum destes serviços não é necessário ter um DataSource configurado.

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.

O mod_jk é o módulo para balanceamento de carga do Apache Web Server mais utilizado no mercado atualmente, principalmente pela sua robustez e qualidade. Este módulo traz uma grande diversidade de parâmetros, podendo ser customizado para atender melhor às suas necessidades.

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 ...

Quer ler esse conteúdo completo? Tenha acesso completo