У меня есть два вопроса относительно развертывания веб-приложения Java и его влияния на производительность. У нас есть приложение, развернутое на serverA, с JSP, разнесенными в один каталог контента (это означает, что JSP не являются частью WAR) Вопрос 1: Я знал, что это был подход к разработке, а не любые другие среды. Замедляет ли это развернутое развертывание производительность?
теперь каталог содержимого перекрестно монтируется (общий ресурс NFS) на другое оборудование, и там мы запускаем serverB, который также использует JSP для своего содержимого. Если сервер A и сервер B работают и используют один и тот же контент, может ли это снизить производительность?
Ответ 1 · рейтинг 1 · Stephen C
Развертывание JSP в разобранном виде (а не в файле WAR) не будет иметь никакого значения с точки зрения производительности. Когда файл WAR развертывается, он все равно распаковывается.
Помещение контента (включая JSP) в файловую систему, смонтированную NFS, откроет доступ к файлам и может привести к проблемам в работе, если ваши смонтированные NFS устаревают в неподходящее время. Это произойдет при первом использовании JSP, а также может произойти в другое время, если ваш механизм JSP настроен на периодическую проверку измененных JSP.
Ответ 2 · рейтинг 1 · letronje
В первый раз, когда потребуется какой-либо jsp, он будет скомпилирован в сервлет и сохранен в кеше веб-контейнера (по крайней мере, это делает tomcat). Поскольку папка кеша не находится поверх NFS, это не должно влиять на производительность веб-сервера. Тем не менее, может быть хорошей идеей предварительно скомпилировать ваши JSP.
Ответ 3 · рейтинг 1 · Dean J
Развертывание WAR-файла должно немного сократить время развертывания, но сервер все равно разнесет WAR-файл при его развертывании.
Как указывалось в других ответах, JSP переводятся в сервлеты, а затем компилируются в байт-коды .class. Это происходит при первом доступе пользователя к этому JSP, и это вызывает задержку для пользователей, особенно если это сложная страница. Лучший способ обойти это - предварительно скомпилировать JSP.
Ответ 4 · Mercy
Если JSP вашего приложения предварительно скомпилированы, а функция компиляции закрыта в контейнере сервлетов, это не повлияет на производительность вашего приложения, потому что JSP были скомпилированы в файл .class, а затем они будут загружены контейнером.