2015-03-14 5 views
1

У меня есть несколько различных веб-сервисов, разработанных с использованием Grails framework (версия 2.3.7). Каждая веб-служба делает разные вещи, некоторые простые, некоторые более сложные. У некоторых есть только несколько зависимостей (плагины и т. Д.), Другие - многие.Развертывание приложений Grails на Tomcat происходит медленно

Для производства я развертываю каждую услугу/приложение на Tomcat 7, каждый на другой виртуальной машине. Чтобы сделать это, я первый построить WAR:

> grails war 

, а затем развернуть войну на Tomcat в качестве приложения ROOT (/var/lib/tomcat7/webapps/ROOT.war). Это прекрасно работает.

Но, когда (повторно), начиная с Tomcat, для развертывания приложения часто требуется от 2 до 7 минут, а иногда и больше. Я не заметил реальной корреляции между сложностью приложения и временем развертывания.

В чем причина такого длительного времени развертывания? На что я должен обратить внимание, чтобы ускорить развертывание приложений Grails на Tomcat 7?

Или это то, чего я должен ожидать, и я должен научиться жить с ним?

+1

Типичные голые кости Приложение Grails 2.x/WAR начнется примерно через 30 секунд или около того. Поэтому время запуска ОЧЕНЬ МЕДЛЕННО. Какие плагины вы используете? Какой код выполняется в Bootstrap.groovy? Кто-нибудь из них зависит от внешних ресурсов (другие веб-службы и т. Д.)? –

+0

Спасибо, что подтвердили, что время моего запуска было совсем не так. Я думаю, что нашел ответ, и его можно найти ниже. – metajungle

ответ

0

Оказалось, что эта проблема была связана с «Энтропийным источником», как описано на Tomcat wiki о том, как ускорить запуск Tomcat. Таким образом, решение было добавить следующий параметр JDK в файле конфигурации Tomcat:/и т.д./по умолчанию/tomcat7:

-Djava.security.egd=file:/dev/./urandom 

Теперь Tomcat надежно запускается примерно 20-30 секунд.

Смежные вопросы