Масштабирование Admin Backend
В данной статье описываются принцип работы и настройка масштабирования Admin Backend на Webim Server версии 10.6.
Масштабирование компонента происходит посредством введения дополнительных инстанстов и привязки всех инстансов к Redis, что позволяет инстансам обмениваться сообщениями для синхронизации данных.
Примерная схема масштабирования Admin Backend имеет следующий вид:
Настройка масштабирования
Для запуска Admin Backend в режиме масштабирования проделайте следующие шаги:
-
Установите Redis 7.2.4 (при доступе из РФ возможны ограничения). Предпочтительным вариантом является установка на один сервер с Admin Backend.
-
На сервере Chat Backend в директории
/etc/webimдобавьте файлredis.jsonи заполните его по следующему образцу:{ "connections": { "<redis_connection_name>": { "url": "redis://<redis_ip_address>:<redis_port>/<key>" } } }Здесь
<redis_connection_name>- произвольное название соединения,<redis_ip_address>- IP-адрес сервера с Redis,<redis_port>- порт, используемый Redis,<key>- ключ, используемый для хранения данных. -
Дополните файл
/etc/webim/db.jsonследующей конфигурацией:{ "dbs": { ... "redis": { "connection": "<redis_connection_name>" } } } -
В файле
/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/db.json,<cluster_name>- имя кластера. Значения параметров должны быть одинаковыми для всех инстансов Admin Backend!
Отключение масштабирования
Для отключения масштабирования верните к исходному виду перенаправление admin_backend и перезапустите Admin backend без параметров --redis_connection и --cluster_name. Этот набор действий является минимальным. При необходимости Вы можете откатить все изменения из инструкции.
