Mehrere Grails-Anwendungen auf Tomcat
Frage
Ich bin über mehrere Grails apps auf einem einzigen Tomcat-Server, und ich habe folgende Zweifel zu implementieren:
- Im Hinblick auf die Speichernutzung: Macht es einen Unterschied, die gemeinsamen grails Libs setzen unter shared / lib, anstatt sie in jeder App Krieg Dateien setzen? Gibt es eine Liste dieser Gläser?
- Wenn ja, gibt es einen Mechanismus nicht, diese Gläser in der WAR-Datei für die „Herstellung“ -Umgebung zu verpacken? Ich bin mit NetBeans 6.7.
- Ich bin über Tomcat verwenden 5.5; keine Erfahrungen gibt es, dass statt 6,0 zu verwenden, empfehlen?
Danke
Lösung
ich denke, Best Practices sind die Bibliotheken in den Krieg zu halten, denn wenn man eine Bibliothek aktualisieren, die dann gemeinsam genutzt werden Sie sicher, es ist kompatibel mit allen Ihren Anwendungen, die sie verwenden. Wir tun dies mit Grails und mit Feder im Allgemeinen auf diese Weise haben wir die Kompatibilität nicht gehen Sie zurück und machen jedes Mal testen wir aktualisieren.
Ich glaube auch, dass tomcat Lasten eine Instanz der Klasse pro Anwendung, so dass Sie nicht speichern auf das Gedächtnis, indem sie es als eine gemeinsame Klasse.
Siehe auch:
Andere Tipps
1) setzt die Gläser in shared / lib oder common / lib könnte die Größe des Speichers in PermGen erforderlich reduzieren. IMHO der größte Vorteil ist, dass der Krieg Datei hochgeladen ist viel schneller. Aber bedenken Sie, was TripWird sagte, gemeinsame Gläser Verbindungen alle eingesetzten Anwendungen auf der gleichen Grails-Version. Ein Upgrade zu einem "nichts-oder-alles" Spiel.
2), wenn Sie mit
grails prod war --nojars
dann all JAR-Datei aus dem Krieg ausgeschlossen.