Livros sobre como melhorar o desempenho e a capacidade de resposta de aplicativos da web JEE [closed]

5

Alguém sabe de algum bom livro sobre esse assunto? Eu pesquisei na Amazon, mas os que eu encontrei são publicações antigas.

    
por CoolBeans 17.01.2011 / 16:43
fonte

1 resposta

4

Edite para cobrir a pergunta revisada (originalmente exigia as características dos idiomas JEE de alto desempenho em vez de livros disponíveis).

Recomendação do livro

Você pode descobrir que o Pro Java EE Performance Management & Otimização pode ajudar. Está disponível nas Zshops (dos EUA / Reino Unido) e no Kindle, se necessário. Pode ser um pouco datado em 2006, mas os princípios são detalhados.

Características gerais de uma aplicação JEE de alto desempenho

Supondo que você esteja direcionando um aplicativo da Web Java e não algum back-end com tecnologia JMS, considere o seguinte:

Sem estado

Ter um design sem estado reduz a incompatibilidade de impedância entre o protocolo da Web subjacente (HTTP) e o aplicativo. Você pode escalá-lo muito melhor porque pode simplesmente adicionar mais nós ao seu cluster e não se preocupar em compartilhar o estado entre os nós.

Simples

Se o seu número geral de instruções e processos complexos for reduzido, o esforço que seu aplicativo precisa fazer para obter uma solicitação processada é reduzido. Se todas as funcionalidades puderem ser facilmente contidas em um único aplicativo (por exemplo, WAR único com vários JARs que fornecem funcionalidade em camadas), os gargalos do fluxo de dados serão bastante reduzidos.

Comunicação interna eficiente

A análise leva tempo. Se o seu sistema depende da transformação XSLT após a transformação, o empacotamento de XML, em seguida, o desmarque e, em seguida, o empacotamento novamente enquanto você trabalha através das camadas espalhadas por várias máquinas em uma DMZ, você irá introduzir algumas sobrecargas significativas. Se todos os seus sistemas internos funcionarem no Java, você poderá considerar o uso do RMI internamente, com a interface voltada ao público sendo baseada nos serviços da Web RESTFul. Os serviços da Web são realmente para arquiteturas heterogêneas para permitir a interoperabilidade.

Uso eficiente de recursos

Use uma camada de cache se isso ajudar. Talvez teste o desempenho de um contêiner de aplicativos mais leve (digamos Jetty com Spring) em vez da abordagem do WebSphere mais inchada. Altere o hardware nos servidores para usar unidades de estado sólido ou uma solução totalmente orientada por RAM para desempenho extremo.

Acesso otimizado ao banco de dados

Verifique se não há varreduras de tabelas completas que ocorrem em tabelas grandes como resultado de consultas ou índices mal projetados. Seu DBA deve ser capaz de direcionar você para problemas de desempenho no Oracle ou no DB2. Qualquer implementação moderna de JPA / JTA (por exemplo, o Hibernate) produzirá consultas eficientes em resposta a um modelo de domínio eficiente.

    
por 17.01.2011 / 22:16
fonte