Масштабирование Admin Backend
В данной статье описываются принцип работы и настройка масштабирования Admin Backend на Webim Server.
Масштабирование компонента происходит за счёт запуска дополнительных экземпляров и привязки всех экземпляров к Redis, что позволяет им обмениваться сообщениями для синхронизации данных.
Примерная схема масштабирования Admin Backend имеет следующий вид:

Настройка масштабирования
Для запуска Admin Backend в режиме масштабирования проделайте следующие шаги:
-
Установите Redis 7.2.4 (при доступе из РФ возможны ограничения). Предпочтительным вариантом является установка на один сервер с Admin Backend.
-
На сервере 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>- ключ, используемый для хранения данных. -
Если в
redis.jsonописано несколько подключений, заранее выберите имя подключения, которое будете использовать при запуске Admin Backend (параметр--redis-connection). -
В файле
/etc/webim/nginx-components.confдобавьте или приведите к виду следующее перенаправление:upstream admin_backend { server <admin_backend_instance_IP>:<admin_backend_instance_port> server ... ... }Здесь необходимо добавить адреса и порты всех используемых экземпляров Admin Backend.
-
Удостоверьтесь, что в конфигурационных файлах nginx верно задано значение
$agent_backend. Оно должно иметь вид:set $agent_backend http://admin_backend -
Перезапустите 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. Этот набор действий является минимальным. При необходимости Вы можете откатить все изменения из инструкции.