Настройка серверов кластера для высокой готовности

Можно настроить несколько серверов для кластерной конфигурации (конфигурации высокой готовности). В этой конфигурации несколько серверов работают параллельно.

Прежде чем начать

Установите распределитель нагрузки. Этот распределитель нагрузки будет распределять запросы по серверам в кластере.

Об этой задаче

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

Процедура

  1. Установите и настройте базу данных обычным образом. Если база данных уже есть, ее можно использовать для серверов кластера. См. раздел Установка базы данных.
  2. Если уже есть один или несколько серверов, превратите их в серверы кластера с помощью следующих действий:
    1. Остановить сервер.
    2. На сервере откройте файл установочный-каталог/ucrelease/conf/server.properties в текстовом редакторе. Вместо установочный-каталог подставьте установочный каталог сервера.
    3. В этом файле укажите URL и порт распределителя нагрузки в параметре public.url. Перед двоеточиями и другими специальными символами необходимо ставить обратную косую черту (\). Пример:
      public.url=http\://balancer.example.com\:8080
    4. Сохраните файл.
  3. Для установки новых серверов кластера установите серверы обычным образом, но со следующими изменениями:
    • Подключите каждый сервер к одной базе данных.
    • For the host name that the users access, specify the host name of the load balancer, not the computer that hosts the server.
    • При установке серверов в одной системе у серверов должны быть разные порты для запросов HTTPS.
    См. раздел Установка сервера. Выпишите номера портов, они потребуются позднее. По умолчанию для запросов HTTP используется порт 8080, а для запросов HTTPS - порт 8443.
  4. Запустите каждый сервер.
  5. Войдите на один сервер и включите переключатель Оставить меня в системе.
  6. Откройте файл server.properties для этого сервера.
  7. В файле server.properties найдите свойство cookie.key и скопируйте его значение. Это свойство содержит ключ, который добавляется в cookie при входе пользователя. Позднее этот ключ надо будет скопировать на другие серверы, чтобы пользователям не пришлось входить отдельно на каждый сервер.
  8. В файл server.properties каждого сервера добавьте следующие свойства:
    ha.activation.enabled=yes
    ha.node.name=имя-узла
    cookie.key=ключ-cookie
    Для имя-узла укажите уникальное имя узла для каждого сервера. После настройки серверов это имя узла появится на каждом сервере. Знание используемого сервера может помочь в отладке. Узнать имя используемого узла можно щелчком на Справка в верху любой страницы. Имя узла показывается в меню (см. следующий рисунок).
    Меню справки сервера, в котором показано имя узла
    Для ключ-cookie укажите ключ cookie, скопированный на первом сервере. Этот ключ должен быть одинаковым на всех серверах.
    Например, добавляемые в файл server.properties свойства могут выглядеть следующим образом:
    ha.activation.enabled=yes
    ha.node.name=HA node 1
    cookie.key=D3ZizBbRSWFjdOQ8N2a/yQ\=\=
  9. Необязательно: Для сохранения вложений в общем каталоге добавьте свойство attachments.folder.path и укажите в нем общий каталог, как в следующем примере:
    attachments.folder.path=/
  10. Перезапустите все серверы.
  11. Настройте распределитель нагрузки для распределения нагрузки между серверами. См. документацию применяемого распределителя нагрузки.

Результаты

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

Комментарии