Масштабирование 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
. Этот набор действий является минимальным. При необходимости Вы можете откатить все изменения из инструкции.