Как я могу обновить свое приложение Java EE без простоя? - PullRequest
4 голосов
/ 03 февраля 2010

Как я могу автоматизировать (без простоя) развертывание?
И иметь возможность отключить любой сервер для обслуживания.
Какие инструменты я должен использовать?

Я использую Tomcat, но я готов перейти на другой сервер Java EE, который лучше всего подходит для представленных требований.

Хотелось бы узнать готовые детали конфигурации.

Ответы [ 2 ]

3 голосов
/ 04 февраля 2010

Начиная с WebLogic 9, в WebLogic имеется функция, позволяющая развертывать новую версию приложения без простоев, которая называется параллельным развертыванием:

Параллельное развертывание: BEA WebLogic Server 9.0 обеспечивает развертывание нескольких версий одного и того же приложение через кластер WebLogic; новые клиентские запросы направляются на новая версия и не влияет на существующие клиенты старой версии. BEA WebLogic Server будет автоматически удалить старую версию приложение сразу всех существующих клиентов завершили их обработку. это избавляет от необходимости строить тиражированные версии продукции среды, разверните два разных версии в двух средах, или использовать балансировщик нагрузки для переключения приложения трафик на новую версию.

WebLogic Server также поддерживает полную миграцию на уровне сервера , когда экземпляр переносимого сервера и все его службы переносятся на другую физическую машину. Это может быть использовано для обслуживания сервера.

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

3 голосов
/ 03 февраля 2010

Если у вас в кластере работает два tomcat (за балансировщиком нагрузки или за apache), это действительно просто.

  1. Извлеките сервер 1 из кластера, обновите его.
  2. Вернуть сервер 1 обратно.
  3. Извлеките сервер 2 из кластера, обновите его.
  4. Вернуть сервер 2 обратно.

Все остальное приведет к простоям (хотя и кратким), если вы выполняете полное повторное развертывание своего приложения.

Если вы можете допустить небольшое время простоя (<1 с), то вы можете эмулировать это путем развертывания во второй экземпляр tomcat, а затем направить балансировщик нагрузки на второй экземпляр. В этом случае вы потеряете все активные сеансы, но переключение должно быть очень быстрым. </p>

В обоих случаях существуют проблемы с синхронизацией базы данных, которые вам придется решать.

...