null

Развёртывание GlassFish 3.1.1 в кластерной конфигурации

На прошедшей на прошлой неделе конференции JavaDay 2012 я рассказывал о развёртывании Liferay Portal в кластерном окружении на базе сервера приложений GlassFish и СУБД PostgreSQL. В связи с интересом к теме, в этой заметке я привожу пошаговую инструкцию по созданию кластера в GlassFish 3.1.1, которой можно воспользоваться при создании такого окружения. Инструкция является вольным переводом статьи Sven Hafner, которой я пользовался при подготовке к докладу.

Постановка задачи

Наш кластер будет развёрнут на двух физических машинах - node1 и node2. Domain Administration Server (DAS), в идеале, надо было бы вынести на третью машину, но мы, с целью упрощения описания, этого делать не будем, и оставим его на node1. В итоге, архитектура нашего кластера примет следующий вид:

Схема кластера

Предусловия

  1. Две машины с UNIX-like OS.
  2. Открытый доступ по SSH.
  3. Установленная JDK 1.6 (!). GlassFish 3.1.1 не может нормально работать с включённой опцией Secure Admin на JDK 1.7.

Установка и конфигурация Glassfish

1. Качаем GlassFish 3.1.1 отсюда.

2. Копируем архив на обе машины и распаковываем его (например, по стандартному пути установки GlassFish - в каталог /opt):

[root@node1 /opt]$ unzip glassfish-3.1.1.zip

3. Удаляем дефолтный домен (на обеих нодах):

[root@node1 /opt/glassfish3/bin]$ ./asadmin delete-domain domain1
Domain domain1 deleted.
Command delete-domain executed successfully.

4. Создаём новый домен (на первой ноде, на второй пока что ничего делать не надо):

[root@node1 ~]$ /opt/glassfish3/bin/asadmin create-domain \
--user admin --adminport 4848 --instanceport 8080 \
--checkports=false myDomain

Во время создания домена говорим глассфишу пароль. Введённый пароль запоминаем / записываем.

(Опционально) 5. Сохраняем пароль в файле (чтобы оно не спрашивало его при каждом стартапе домена):

[root@node1 ~]$  vi domains/myDomain/config/password.txt
...

6. Запускаем домен:

[root@node1 ~]$ /opt/glassfish3/bin/asadmin \
--user admin --passwordfile \
/opt/glassfish3/glassfish/domains/myDomain/config/password.txt \
start-domain myDomain

7. Активируем для домена режим Secure Admin (без этого мы не сможем стартовать инстанс на второй машине через ssh):

[root@node1 ~]$ /opt/glassfish3/bin/asadmin enable-secure-admin

После этого рестартуем домен.

8. Логинимся в админке созданного домена. Создаём кластер:

Создаём новый кластер

Все параметры кластера оставляем в значениях по-умолчанию:

Параметры кластера

9. Создаём инстанс на первой машине:

Создаём новый инстанс кластера

При создании первого инстанса все параметры тоже оставляем в значениях по-умолчанию:

Параметры первого инстанса кластера

10. Создаём ноду на второй машине:

Создание ноды на второй машине

В качестве типа ноды выбираем "SSH", указываем hostname второй машины и путь в файловой системе к каталогу с нодами глассфиша:

Параметры второй ноды кластера

Редактируем параметры доступа по SSH - задаём логин пользователя, выбираем способ аутентификации с помощью пароля и задаём этот пароль:

Параметры доступа по SSH

11. Создаём инстанс на второй машине (при его создании выбираем созданную на предыдущем шаге ноду):

Создание второго инстанса кластера

12. Стартуем кластер и проверяем, запустились ли инстансы на обеих машинах:

Запуск кластера

Готово! Теперь нужно сконфигурировать проксирование доступа к инстансам нашего кластера через какой-нибудь веб-сервер (например, apache или nginx), но это уже тема для отдельной статьи :)

Дополнительные материалы

  1. Статья Sven Hafner по кластеризации GlassFish 3.1.
  2. Презентация c моего доклада на конференции JavaDay 2012.

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.

Ничего не найдено. n is 0