2010-08-17 3 views
2

У меня есть два вопроса относительно развертывания веб-приложений Java и их влияния на производительность. У нас есть приложение, развернутое на сервере А, при котором JSPs взорвались в один каталог контента (это означает, что JSP не являются частью WAR) вопрос 1: Я знал, что это был подход для разработки, а не для любых других сред. Увеличивает ли это взорванное развертывание производительность?Архитектура производительности и развертывания веб-приложений (java)

Теперь каталог содержимого крепирован (общий ресурс NFS) на другое оборудование, и там мы запустим серверB, который также использует JSP для своего содержимого. Когда серверы serverA и serverB работают и используют один и тот же контент, может ли это замедлить производительность?

+1

Помимо производительности, серьезной проблемой будет стабильность и избыточность. Почему вы запускаете каталог контента из NFS? NFS имеет множество соображений, которые необходимо учитывать. Блокировки файлов, временные метки отключены и т. Д. Если ваш диск на сервере B не работает, вы потеряете и сервер A. Какова общая цель использования NFS здесь? – Keibosh

+0

Содержимое, включая изображения и носители, составляет около 3 ГБ, и оно разделяется из-за задержки развертывания, а также соображений пространства. –

ответ

1

Развертывание JSP в разобранном виде (а не в файле WAR) не будет иметь никакого значения с точки зрения производительности. Когда WAR-файл развернут, он все равно распакован.

Ввод содержимого (включая JSP) в файловую систему, подключенную к NFS, сделает доступ к файлам и может привести к операционным проблемам, если ваши монстры NFS будут устаревать в неподходящее время. Это произойдет при первом использовании JSP и может также произойти в другое время, если ваш JSP-движок настроен на периодическую проверку для измененных JSP.

1

В первый раз, когда нужен какой-либо jsp, он будет скомпилирован в сервлет и сохранен в кеше веб-контейнера (по крайней мере, tomcat делает это). Поскольку папка кэша не превышает NFS, это не должно влиять на производительность веб-севера. Это может быть хорошей идеей, чтобы прекомпилировать ваши JSP.

0

Если вы используете JSP-приложения, и функция компиляции закрыта в контейнере Servlet, это не влияет на производительность вашего приложения, поскольку JSP были скомпилированы в их .class-файл, а затем они будут загружены контейнером.

1

Взрыв WAR должен слегка улучшать время развертывания, но сервер будет взрывать WAR-файл в любом случае при его развертывании.

Как указывалось в других ответах, JSP переведены в сервлеты и затем скомпилированы в .class bytecodes. Это происходит в первый раз, когда пользователь обращается к этому JSP, и это будет производить время задержки для пользователей, особенно если это сложная страница. Лучше всего это перекомпилировать JSP.

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