2010-01-30 24 views
7

estoy a punto de desplegar varias aplicaciones Grails en la parte superior de un solo servidor Tomcat, y tengo las siguientes dudas:múltiples aplicaciones Grails en Tomcat

  1. En términos de uso de la memoria: ¿Hay alguna diferencia en poner las librerías de griales comunes en shared/lib en lugar de ponerlas en los archivos war de cada aplicación? ¿Hay una lista de esos frascos?
  2. En caso afirmativo, ¿existe un mecanismo para no empaquetar esos archivos jar en el archivo de guerra para el entorno de "producción"? Estoy usando NetBeans 6.7.
  3. Estoy a punto de utilizar Tomcat 5.5; ¿Hay alguna experiencia que recomiende usar 6.0 en su lugar?

Gracias

Respuesta

5

creo que las mejores prácticas son para mantener las bibliotecas en la guerra, porque si se actualiza una biblioteca que es compartida entonces usted tiene que asegurarse de que es compatible con todas las aplicaciones que están usando. Hacemos esto con griales y con la primavera en general de esa manera no tenemos que volver atrás y hacer pruebas de compatibilidad cada vez que actualizamos.

También creo que tomcat carga una instancia de la clase por aplicación para que no guarde en memoria usándola como una clase común.

Consulte también:

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

5

1) poner los frascos en shared/lib o común/lib podría reducir la cantidad de memoria requerida en PermGen. En mi humilde opinión, la mayor ventaja es que subir el archivo de guerra es mucho más rápido. Pero tenga en cuenta, lo que dijo TripWird, los jars compartidos vinculan todas las aplicaciones desplegadas a la misma versión de grial. La actualización se convierte en un juego de "nada o todo".

2) si se utiliza

grails prod war --nojars 

continuación, todos los archivos jar están excluidos de la guerra.

Cuestiones relacionadas