Разбиение веб-приложения на несколько частей (кот) - PullRequest
2 голосов
/ 06 августа 2009

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

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

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

Есть какие-нибудь мысли о том, как разделить webapp? Спасибо.

1 Ответ

1 голос
/ 06 августа 2009

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

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

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

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

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

...