Разбиение веб-приложения на несколько частей (tomcat)

StackOverflow https://stackoverflow.com/questions/1236178

Вопрос

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

Я хотел бы разбить это на более мелкие части в зависимости от функциональности (например.На банковском веб-сайте я хочу отделить информационный материал от функций онлайн-банкинга, поэтому, если я внесу изменения в функции онлайн-банкинга, я просто разверну эту часть)

Проблема здесь заключается в существовании определенных общих элементов в веб-приложении, например общего класса, который используется во всем приложении.

Есть какие-нибудь мысли о различных способах разделения веб-приложений?Спасибо.

Это было полезно?

Решение

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

Разбивка по функциям имеет наибольший смысл.Посмотрите, где вы можете разделить свой внутренний код.Если у вас есть хорошие URL-адреса спокойного типа, вы, вероятно, можете просмотреть свои URL-адреса, чтобы определить хорошие разделы.

Кроме того, если у вас есть большой статический раздел, который вы обновляете отдельно, возможно, его следует обслуживать чем-то другим, кроме tomcat.

Для общих классов вы можете поместить реализации классов в jar в папке tomcat/lib.Они будут доступны для всего сервера.Они не смогут быть очень хорошо адаптированы к вашему веб-контексту (если вы не передадите им контекст), и вам придется перезапустить весь сервер, чтобы обновить файл jar, чтобы Tomcat перезагрузил его.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top