Question

Je suis sur le point de déployer plusieurs applications Grails sur un seul serveur Tomcat, et je les doutes suivants:

  1. En termes d'utilisation de la mémoire: Est-il une différence de mettre les libs Grails commun à la place shared / lib de les mettre dans les dossiers de guerre de chaque application? Y at-il une liste de ces pots?
  2. Si oui, est-il un mécanisme de ne pas emballer les pots dans le fichier de guerre pour l'environnement « production »? J'utilise NetBeans 6.7.
  3. Je suis sur le point d'utiliser Tomcat 5.5; sont là des expériences qui recommandent d'utiliser 6,0 à la place?

Merci

Était-ce utile?

La solution

Je pense que les meilleures pratiques sont de garder les bibliothèques dans la guerre, parce que si vous mettez à jour une bibliothèque qui est partagée alors vous assurer qu'il est compatible avec toutes vos applications qui utilisent. Nous le faisons avec Grails et ressort en général de cette façon, nous ne devons pas revenir en arrière et test de compatibilité à chaque fois que nous mettons à jour.

Je crois aussi que tomcat charge une instance de la classe par application de sorte que vous n'enregistrez pas sur la mémoire en l'utilisant comme une classe commune.

Voir aussi:

Est-ce que Tomcat charger le même fichier de bibliothèque en mémoire deux fois si elles sont deux applications Web?

Autres conseils

1) mettre en commun les pots / lib ou common / lib peut réduire la quantité de mémoire nécessaire dans PermGen. À mon humble avis le plus grand avantage est que le chargement du fichier de guerre est beaucoup plus rapide. Mais gardez à l'esprit, ce que dit TripWird, pots partagés cravates toutes les applications déployées dans la même version Grails. Mise à niveau devient un « rien-ou-tout » jeu.

2) si vous utilisez

grails prod war --nojars

alors tous les fichiers jar sont exclus de la guerre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top