2010-01-30 17 views
7

sto per distribuire diverse applicazioni Grails in cima ad un singolo server Tomcat, e ho i seguenti dubbi:più applicazioni Grails su Tomcat

  1. In termini di utilizzo della memoria: Fa la differenza per metti le librerie di Grails comuni sotto shared/lib invece di metterle nei file war di ogni app? C'è una lista di quei barattoli?
  2. In tal caso, esiste un meccanismo per non impacchettare quei vasi nel file di guerra per l'ambiente di "produzione"? Sto usando NetBeans 6.7.
  3. Sto per utilizzare Tomcat 5.5; ci sono esperienze che raccomandano di usare 6.0 invece?

Grazie

risposta

5

penso migliori pratiche sono per mantenere le librerie nella guerra, perché se si aggiorna una libreria che è condivisa allora dovete fare in modo che sia compatibile con tutte le applicazioni che si utilizza. Lo facciamo con i graal e con la molla in generale in questo modo non dobbiamo tornare indietro e fare test di compatibilità ogni volta che aggiorniamo.

Inoltre, credo che tomcat carichi un'istanza della classe per applicazione in modo da non salvare in memoria utilizzandola come classe comune.

Vedi anche:

Does Tomcat load the same library file into memory twice if they are in two web apps?

5

1) mettere i barattoli condiviso/lib o common/lib potrebbe ridurre la quantità di memoria richiesta in PermGen. IMHO il più grande vantaggio è che il caricamento del file di guerra è molto più veloce. Ma tenete a mente, quello che ha detto TripWird, giare condivise lega tutte le app distribuite alla stessa versione di Grails. L'aggiornamento diventa un gioco "niente-o-tutto".

2) se si utilizza

grails prod war --nojars 

poi tutti i file jar sono esclusi dalla guerra.

Problemi correlati