Несколько Grails приложения на Tomcat
Вопрос
Я собираюсь развернуть несколько приложений Grails на вершине одного сервера Tomcat, и у меня есть следующие сомнения:
- С точки зрения использования памяти: имеет ли различие, чтобы поставить общие грастины Libs в соответствии с Shared / lib вместо того, чтобы поместить их в файлы войны каждого приложения? Есть ли список этих банок?
- Если это так, есть ли механизм не упаковать эти банки в файле войны для «производства» окружающей среды? Я использую NetBeans 6.7.
- Я собираюсь использовать Tomcat 5.5; Есть ли опыты, которые рекомендуют использовать 6.0 вместо этого?
Спасибо
Решение
Я думаю, что лучшие практики состоят в том, чтобы сохранить библиотеки в войне, потому что если вы обновите общую библиотеку, то вы убедитесь, что это совместимо со всеми вашими приложениями, которые его используют. Мы делаем это с Grails и с весной вообще то, как нам не нужно вернуться и делать тестирование совместимости каждый раз, когда мы обновляем.
Также я считаю, что Tomcat загружает экземпляр класса на приложение, поэтому вы не сохраняете память, используя его как общий класс.
Смотрите также:
Другие советы
1) Положить банки в Shared / Lib или Common / lib могут уменьшить объем памяти, необходимой в Permgen. IMHO Самое большое преимущество заключается в том, что загрузка файла войны намного быстрее. Но имейте в виду, что сказал Tripwird, поделились бабами завязывают все развертываемые приложения к той же версии Grails. Обновление становится игрой «Ничего или все».
2) Если вы используете
grails prod war --nojars
Тогда весь файл JAR исключен из войны.