Skip to content

Масштабирование Admin Backend

В данной статье описываются принцип работы и настройка масштабирования Admin Backend на Webim Server.

Масштабирование компонента происходит за счёт запуска дополнительных экземпляров и привязки всех экземпляров к Redis, что позволяет им обмениваться сообщениями для синхронизации данных.

Примерная схема масштабирования Admin Backend имеет следующий вид:

Схема масштабирования admin-backend

Настройка масштабирования

Для запуска Admin Backend в режиме масштабирования проделайте следующие шаги:

  1. Установите Redis 7.2.4 (при доступе из РФ возможны ограничения). Предпочтительным вариантом является установка на один сервер с Admin Backend.

  2. На сервере Admin Backend в директории /etc/webim создайте файл redis.json (если он ещё не существует) и добавьте в него конфигурацию соединения с Redis по следующему образцу:

    {
      "connections": {
        "<redis_connection_name>": {
          "url": "redis://<redis_ip_address>:<redis_port>/<key>"
        }
      }
    }
    

    Здесь <redis_connection_name> - произвольное название соединения, <redis_ip_address> - IP-адрес сервера с Redis, <redis_port> - порт, используемый Redis, <key> - ключ, используемый для хранения данных.

  3. Если в redis.json описано несколько подключений, заранее выберите имя подключения, которое будете использовать при запуске Admin Backend (параметр --redis-connection).

  4. В файле /etc/webim/nginx-components.conf добавьте или приведите к виду следующее перенаправление:

    upstream admin_backend {
      server <admin_backend_instance_IP>:<admin_backend_instance_port>
      server ...
      ...
    }
    

    Здесь необходимо добавить адреса и порты всех используемых экземпляров Admin Backend.

  5. Удостоверьтесь, что в конфигурационных файлах nginx верно задано значение $agent_backend. Оно должно иметь вид:

    set $agent_backend http://admin_backend
    
  6. Перезапустите Admin Backend с параметрами --redis-connection и --cluster-name:

    admin_backend [other parameters] --redis-connection <redis_connection_name> --cluster-name <cluster_name>
    

    Здесь <redis_connection_name> - имя соединения с Redis, указанное в /etc/webim/redis.json, <cluster_name> - имя кластера. Значения параметров должны быть одинаковыми для всех экземпляров Admin Backend!

Отключение масштабирования

Для отключения масштабирования верните к исходному виду перенаправление admin_backend и перезапустите Admin backend без параметров --redis-connection и --cluster-name. Этот набор действий является минимальным. При необходимости Вы можете откатить все изменения из инструкции.


Последнее обновление страницы: 16 апреля 2026 г.