Раздел sites

Описание

Список сайтов.

Раздел содержит список всех сайтов текущей конфигурации и их параметров. Серверы к параметрам не относятся. Привязка серверов к сайтам осуществляется в разделе structure.

Параметры раздела

Table 1. Параметры раздела
Спецификация Описание

Ключ: name
Обязательный: да
По умолчанию: ``

Cтрока, может состоять из латинских букв и цифр, начинаться должно с буквы

Ключ: sitetype
Обязательный: да
По умолчанию: — 

Тип сайта.
Возможные варианты:

  • master – мастер сайт.

  • communication – рабочий сайт с полным функционалом.

  • master_communication – мастер сайт с полным функционалом.

Ключ: domains
Обязательный: да
По умолчанию: — 

Список обслуживаемых на сайте доменов. Указываются через имена, а не через fqdn.
Сайт также обслуживает все домены из дочерних деревьев указанных в свойстве доменов.
Один домен может обслуживаться на нескольких сайтах.

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

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

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

Ключ: descr
Обязательный: нет
По умолчанию: ``

Описание сайта. По умолчанию: не задано

Ключ: ctrl_domains
Обязательный: нет
По умолчанию: []

Список доменов, управление которыми может производиться через подключение к текущему сайту.
Способ указания аналогичен полю domains.

Ключ: num
Обязательный: нет
По умолчанию: — 

Числовой номер сайта из трех цифр для применения в именах элементов сайта

Ключ: prefix
Обязательный: нет
По умолчанию: — 

Буквенный префикс из трех символов для применения в именах элементов сайта

Ключ: check_quorum
Обязательный: нет
По умолчанию: false

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

Кворум - группа активных связанных между собой и доступных друг другу серверов сайта общим количеством более половины.
Применение кворума обеспечивает целостность данных в момент рассыпания сайта на несколько частей, за счет того, что функционирование поддерживается только на части, обладающей кворумом, а таких в любой момент времени не более одной.
Алгоритм определения кворума выполняется в нодах, где запускается или работает мастер-экземпляр любой из ролей, резервирующихся в режиме Active-Passive - в момент активации и каждые 10 секунд во время работы.

Особый случай четной половины решается с помощью арбитражных серверов (параметр odd_referee).

Ключ: check_offline
Обязательный: нет
По умолчанию: false

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

Состояние оффлайн - условие, когда сервер не имеет доступа к арбитражным серверам (параметр odd_referee), находящимся в одной зоне с пользователями и внешним миром (за пределами дата-центра).
Проверка применяется в случае размещения сайта на двух дата-центрах, связанных отдельным прямым каналом, и имеющих независимые внешние каналы. Подробнее о режиме.
Режим защищает от потери внешнего канала одним из дата-центров, выводя из обслуживания микросервисы, взаимодействующие с внешними сервисами и абонентами: im, email, mware, mg, script, ivrscript.

Ключ: odd_referee
Обязательный: нет
По умолчанию: — 

Адрес или доменное имя стороннего сервера, выступающего в качестве нечетного сервера-арбитра при определении кворума среди четного количества серверов на сайте.
Проверка арбитражного сервера осуществляется с помощью отправки ping-запроса.
Если значение не назначено или пусто, то применяется аналогичный глобальный параметр.
Если параметр не задан нигде, то при проверке кворума на сайте считается, что арбитражный сервер доступен и кворум имеется.
В качестве значения может быть задано несколько адресов или доменных имен, перечисленных через запятую (например, "8.8.8.8, my.domain.ru, yandex.ru"). Тогда проверка доступности считается успешной, если хотя бы один из арбитражных серверов доступен.

Проверка доступности арбитражных серверов производится:

  • При включенной настройке check_quorum. Если количество сконфигурированных серверов на сайте четно, и в группе связности доступна ровно половина из них. Обращение производится со всех серверов этой группы с регулярностью 2, 10, 30 секунд в разных условиях.

  • При включенной настройке check_offline. Если сайт развернут на двух дата-центрах, связанных прямым каналом между собой. Обращение производится со всех серверов сайта, где развернуты микросервисы, взаимодействующие с внешними сервисами и абонентами: im, email, mware, mg, script, ivrscript.

Ключ: leader_site
Обязательный: нет
По умолчанию: — 

Имя другого сайта системы, главного для той группы доменов, которая назначена в обслуживание текущему сайту.
Указывается в том случае, если текущий сайт должен быть резервным, то есть обеспечивать функциональность только в случае недоступности указанного сайта.
Во время пассивного состояния принудительно деактивируется часть микросервисов. Другие микросервисы остаются активными, обеспечивают синхронизацию данных и мониторинг доступности активного сайта.
Настройка предполагает, что текущий резервный сайт обслуживает подмножество доменов указанного сайта.

Пример значения поля

{
  ...
  "sites": [
    {
      "descr": "Main Domain",
      "domains": [
        "td2",
        "td3",
        "td4"
      ],
      "name": "slave2",
      "sitetype": "communication"
    },
    {
      "ctrl_domains": [
        "td3"
      ],
      "descr": "Main Domain2",
      "domains": [
        "td_main",
        "td2",
        "td3",
        "td_test",
        "td5",
        "td6"
      ],
      "name": "central",
      "sitetype": "master_communication"
    }
  ],
  ...
}