Несколько приложений Grails на Tomcat - PullRequest
7 голосов
/ 30 января 2010

Я собираюсь развернуть несколько приложений grails поверх одного сервера Tomcat, и у меня есть следующие сомнения:

  1. С точки зрения использования памяти: имеет ли смысл помещать библиотеки Common Grails в shared / lib вместо того, чтобы помещать их в файлы war каждого приложения? Есть ли список этих банок?
  2. Если так, есть ли механизм, чтобы не упаковать эти файлы в файл war для «производственной» среды? Я использую NetBeans 6.7.
  3. Я собираюсь использовать Tomcat 5.5; есть ли опыт, который рекомендует использовать вместо 6.0?

Спасибо

Ответы [ 2 ]

5 голосов
/ 18 апреля 2010

1) размещение jar-файлов в shared / lib или common / lib может уменьшить объем памяти, необходимый для PermGen.ИМХО самое большое преимущество в том, что загрузка файла войны происходит намного быстрее.Но имейте в виду, что, как сказал TripWird, совместно используемые банки связывают все развернутые приложения с одной и той же версией Grails.Обновление становится игрой «ничего или все».

2) если вы используете

grails prod war --nojars

, тогда все файлы jar исключаются из войны.

5 голосов
/ 01 февраля 2010

Я думаю, что передовой практикой является сохранение библиотек на войне, потому что если вы обновляете библиотеку, которая является общей, то вы должны убедиться, что она совместима со всеми вашими приложениями, которые ее используют. Мы делаем это с Grails и вообще с Spring, поэтому нам не нужно возвращаться и проводить тестирование на совместимость при каждом обновлении.

Также я считаю, что tomcat загружает экземпляр класса для каждого приложения, поэтому вы не экономите память, используя его как общий класс.

Смотри также:

Загружает ли Tomcat один и тот же файл библиотеки в память дважды, если они находятся в двух веб-приложениях?

...