Горячая замена для модулей веб-приложений

1

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

Каков наилучший способ сделать это?

Я думал о переключении с Tomcat на Glassfish, чтобы использовать OSGi. Я также подумал об использовании Apache Felix с Tomcat.

Каковы альтернативы?

Теги:
osgi
java-ee
glassfish
hotdeploy

1 ответ

2
Лучший ответ

OSGi определенно является правильной технологией, если вы хотите создать модульное приложение, которое можно быстро обновлять без простоя.

У вас есть несколько вариантов:

  1. Вы можете начать с контейнера OSGi, такого как Apache Felix, и развернуть пакеты в этом контейнере как для своего приложения, так и для веб-сервера (большинство из них основаны на Jetty). Таким образом, все является пакетом и может быть обновлено при необходимости. Если вы начинаете с нуля и не имеете ограничений на существующие контейнеры сервлетов, которые вы должны использовать, это путь.

  2. Если вам нужно продолжать работать с существующим контейнером сервлетов, вы можете развернуть WAR, который внедряет контейнер OSGi, а контейнер OSGi загрузит все пакеты, составляющие ваше приложение. В этом случае вы можете развернуть специальный "мост", который будет регистрировать сервлеты и фильтры с контейнером сервлетов "хозяин".

Начиная с Glassfish, это немного похоже на первый вариант, поскольку Glassfish сам построен на Felix. Вы просто получаете множество "дополнительных" пакетов, предварительно установленных в вашем приложении. Если вы все равно используете 80%, это, вероятно, стоит того. Если вы вряд ли используете какие-либо функции Glassfish (JavaEE) в своем приложении, вам, вероятно, лучше начать с Felix и выбрать компоненты там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню