Múltiplos aplicativos de Grails no tomcat
Pergunta
Estou prestes a implantar vários aplicativos de Grails no topo de um único servidor Tomcat, e tenho as seguintes dúvidas:
- 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?
- 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.
- Estou prestes a usar o Tomcat 5.5; Existem experiências que recomendam usar 6.0?
Obrigado
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:
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.