Развертывание в кластере IBM Websphere 7 с узлами с высокой доступностью - PullRequest
4 голосов
/ 20 марта 2012

Окружающая среда:

  • Java EE webApp
  • JDK: 1,6,
  • AS: сервер приложений Websphere 7,
  • OS: redhatzLinux

Я не администратор websphere, и меня просят разработать способ или сценарий для решения приведенной ниже проблемы:

У меня есть кластер с тремя узлами NodeA NodeB и NodeC. Мое приложение работает на этих кластерах. Я хочу развернуть свое приложение на этих узлах так, чтобы мне не нужно было отключать их все сразу. В наши дни развертывания выполняются следующим образом: мы приходим ночью, чтобы остановить все серверы одновременно с консоли. Затем мы устанавливаем приложение на главном узле, который находится на том же компьютере, что и менеджер развертывания, а затем мы синхронизируем и приводим все серверы в исходное состояние.

То, что меня просят сделать , заключается в том, что мы обновляем приложение или устанавливаем новый файл ear, не отключая все, так как это приводит к простою приложения. Есть ли способ добиться этого. WAS 7 - очень зрелый продукт, и я уверен, что должен быть способ сделать это.

Я посмотрел документацию / учебное пособие, где мы можем сделать что-то вроде «Обновление», где мы выбираем приложение (из Apllications> корпоративное приложение websphere) и выбираем обновление, а затем выбираем переключатель «Заменить все приложение» и переключатель «локальный файл» система "и укажите на новый файл уха. Но в этом случае док говорит, что он также отключит все серверы при обновлении. это так же, как и раньше. нет онлайн-развертывания.

Я программист на Java, поэтому я подумал о том, какие инструменты мне нужны, чтобы решить эту проблему

Скажите, может ли это быть проблемой :

1) Мы сбиваем NODEA 2) Удаляем NODEA из кластера (нажав кнопку удаления узла или используя removeNode.sh) 3) Установите новое ухо на NODEA (мы можем сделать это в той же консоли администратора? Или через сценарий оболочки или jython, или может быть похоже на автономный сервер) 3) Затем мы снова запускаем его и добавляем в кластер. ТЕПЕРЬ у нас есть NODEA с новым приложением, в то время как NODE B и NODEC со старыми версиями приложения.

Тогда мы сбиваем NODEB удалить NODEB из кластера установить приложение на NODEB начни снова Добавьте его обратно в кластер

СЕЙЧАС у нас есть два узла с новым приложением и NODEC со старым

мы пробуем тот же процесс для NODEC.

Будет ли это работать. Кто-нибудь пробовал это. какие проблемы вы можете придумать?

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

Спасибо за любую помощь заранее. Сайед ...

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Это возможный дубликат Как выполнить развертывание без простоев в кластерной среде? .Вот, по сути, мой ответ на этот вопрос:

После обновления приложения вы можете использовать функцию " Rollout Update ".Вместо сохранения и синхронизации узлов после обновления вы можете использовать эту функцию, которая автоматически выполняет следующие задачи, чтобы позволить изменениям распространяться на все цели развертывания при сохранении высокой доступности (при условии, что у вас есть горизонтальный кластер, такой, что члены кластера существуют на несколькихузлы, что звучит так же, как и вы):

  1. Сохранить изменения сеанса в главной конфигурации
  2. Для каждого узла в кластере (по одному для обеспечения непрерывной доступности):
    1. Остановка элементов кластера на узле
    2. Синхронизация узла
    3. Запуск серверов приложений (который автоматически запускает приложение)
0 голосов
/ 28 сентября 2013

В качестве альтернативы вы можете выполнить следующую процедуру.

  1. Остановить все узлы-агенты, кроме узла А.
  2. Закомментировать или отключить узел А из балансировщика нагрузки или подключаемого модуля (так что трафикне придет на узел)
  3. Разверните приложение.
  4. Изменения будут синхронизироваться только на узле A, поскольку его агент узла активен.
  5. Раскомментировать / включить узел A от плагина / балансировщика нагрузки.

  6. Комментарий / отключение узла B из плагина / балансировщика нагрузки для остановки входящего трафика на узле.

  7. Запустите агент узла узла B, чтобы он синхронизировал изменения файла на узле.Приложение ear остановится и запустится после синхронизации.
  8. Раскомментируйте / включите узел B из плагина / балансировщика нагрузки.

Повторите шаги 6,7,8 для всех остальных узлов.

С уважением, Laique Ahmed

...