Session Manager (sess)

Описание

Обеспечивает управление сессиями обслуживания чатов и заданий.

Разделена на микросервисы по доменам. Необходимость репликации данных между сайтами, обслуживающими домен, отсутствует.
Резервируется в режиме Active-Passive. Масштабируется разделением доменного дерева.

Table 1. Системные характеристики

Код

sess

Режим работы

Сервис

Режим резервирования

Active-Passive

Типы сайтов

Любые

Слой

Бизнес-логика

Размещение

Внутренний

Сохранение и восстановление состояния при перезагрузке

Да

Приложение

rostell_sess

Собственное хранилище

ODB Mnesia

Ограничения

  • Имеет значение только для функционала чат-центра.

Параметры

Table 2. Параметры
Имя Тип Умолчание Описание

name

str

required

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

roletype

str

required

Тип функциональной роли. Возможные значения: "sess".

iface

str

required

Алиас сетевого интерфейса сервера, на котором будет происходить внутреннее взаимодействие функциональных ролей между собой.

roleid

int

required

Идентификатор функциональной роли.
Уникален для всей системы, независимо от сайта или сервера. Не подлежит изменению.
Целое число от 1 до 9999.

separate

bool

required

Признак выделения функциональной роли в отдельную ноду.

group

int

required

Номер группы.
В рамках горизонтального масштабирования функциональная роль может быть разделена на несколько групп на сайте, в каждой из которых активен только один экземпляр, остальные зарезервированы.
Ответственность между группами разделяется по доменным множествам. Вместе все группы обслуживают полное доменное множество. Все функциональные роли одной группы должны иметь одинаковую ответственность.
Целое число от 1 до 9999999.

order

int

required

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

include_domains

array<str>

empty

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

Пример конфигурации

Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.

Конфигурация содержит раздел для описания всех экземпляров всех функциональных ролей. Параметры определяются для каждого конкретного экземпляра функциональной роли.

Пример узла
{
  "name": "sess1",
  "roletype": "sess",
  "iface": "eth0",
  "group": 12,
  "order": 1,
  "roleid": 1005006,
  "separate": true
}

См. также