Схемы размещения серверных компонентов
Ниже представлены схемы сетевого размещения и связи компонентов Webim Server в различных вариантах инсталляции.
Стандартное размещение
Ниже представлена схема стандартного сетевого размещения серверных компонентов Webim, которое используется по умолчанию.
N.B.
В версии Webim 10.7 удалена встроенная в Webim Chat Backend проверка орфографии, теперь вместо неё используется Speller, размещенный в отдельном микросервисе.
Apache Kafka на стандартной схеме
В стандартной установке с одним экземпляром Admin Backend и без Active Directory брокер Apache Kafka не требуется — на схеме он отмечен как опциональный. Kafka становится обязательной в трёх сценариях: кластер Admin Backend из нескольких узлов (синхронизация операторов), интеграция с Active Directory и работа сервиса data-storager (выгрузка истории в OpenSearch или Elasticsearch). Подробнее — в статье Требования к программному обеспечению сервера.
Размещение с резервированием по принципу "active/stand by"
Ниже представлена схема сетевого размещения серверных компонентов Webim в случае разворачивания системы с резервированием по принципу "active/stand by" (Failover), в которой используются избыточные программно-аппаратные компоненты, а переключение производится в случае аварии или при обновлении. Сервер приложений и сервера СУБД дублируются; одновременно нагрузка идёт лишь на один сервер приложений и на один сервер СУБД для каждой пары, однако при необходимости (при обновлении либо отказе одного из них) функционал можно быстро переключить на соседний сервер, и простой (downtime) сервиса будет минимален.
Важно
На неактивном сервере должен быть остановлен Chat Backend, а Admin Backend не должен принимать рабочий трафик. При переключении на другой сервер нужно:
-
Остановить Chat Backend и Admin Backend на старом сервере.
-
Перенастроить репликацию master/slave СУБД и репликацию файлов через rsync, чтобы они действовали в обратном направлении.
-
Запустить Chat Backend и Admin Backend на новом сервере.
-
Переключить маршрутизатор (VIP / балансировщик) на новый активный контур.
Размещение с резервированием по принципу "master/slave"
Ниже представлены схемы размещения серверных компонентов Webim в случае разворачивания системы с резервированием по принципу "master/slave" (кластеризация), заключающемуся в настройке кластера серверов с наличием избыточных программно-аппаратных компонентов (здесь — по 2 каждого типа). Как и при резервировании по принципу "active/stand by", в "master/slave" компоненты каждого сервера дублируются, однако в данном случае они работают одновременно, и нагрузка распределяется между ними (между большинством компонентов симметрично, в случае Webim Chat Backend — особым образом).
N.B.
В масштабировании 2.0 кластер Chat Backend состоит из одного master и нескольких slaves. Кластер Admin Backend симметричен: для синхронизации его узлов нужны Redis и Apache Kafka, поэтому в этой конфигурации Kafka обязательна. Хранилища (СУБД, Redis, файлы, ClickHouse и опционально OpenSearch) — общие для узлов.
Варианты сетевого размещения компонентов Webim Server с резервированием по принципу "master/slave":
- Компоненты Webim Server размещены на одном сетевом узле
- Компоненты Webim Server размещены на разных сетевых узлах
N.B.
Служба каталогов Active Directory не входит в базовое программное обеспечение Webim Server и подключается опционально за отдельную плату. На схеме отмечено пунктирными линиями.