Pergunta

Estou prestes a implantar vários aplicativos de Grails no topo de um único servidor Tomcat, e tenho as seguintes dúvidas:

  1. Em termos de uso da memória: faz a diferença colocar os LIBs comuns de graals em compartilhamento/lib em vez de colocá -los nos arquivos de guerra de cada aplicativo? Existe uma lista desses frascos?
  2. Em caso afirmativo, existe um mecanismo para não empacotar esses frascos no arquivo de guerra para o ambiente de "produção"? Estou usando o NetBeans 6.7.
  3. Estou prestes a usar o Tomcat 5.5; Existem experiências que recomendam usar 6.0?

Obrigado

Foi útil?

Solução

Eu acho que as melhores práticas são manter as bibliotecas na guerra, porque se você atualizar uma biblioteca compartilhada, verifique se é compatível com todos os seus aplicativos que o estão usando. Fazemos isso com Grails e, com a primavera em geral, não precisamos voltar e fazer testes de compatibilidade cada vez que atualizamos.

Além disso, acredito que o Tomcat carrega uma instância da classe por aplicativo para que você não economize na memória usando -o como uma classe comum.

Veja também:

O Tomcat carrega o mesmo arquivo da biblioteca na memória duas vezes se estiver em dois aplicativos da Web?

Outras dicas

1) Colocar os frascos em compartilhado/lib ou comum/lib pode reduzir a quantidade de memória necessária no Permgen. IMHO A maior vantagem é que o upload do arquivo de guerra é muito mais rápido. Mas lembre -se, o que o Tripwird disse, os frascos compartilhados amarram todos os aplicativos implantados à mesma versão do Grails. A atualização se torna um jogo "nada ou tudo".

2) Se você usar

grails prod war --nojars

Em seguida, todo o arquivo JAR é excluído da guerra.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top