- Сервис онлайн-консультирования Webim
- -
- База знаний
- -
- Для девопсов
- -
- Горизонтальное масштабирование (кластеризация)
-
-
-
- API сервиса Webim
- Webim Mobile SDK и мобильное приложение Webim для посетителя
- Встраивание чата Webim на сайт
- Идентификаторы посетителя
- Интеграция со сторонними сервисами
- Интерфейс виджета чата
- Логика обработки чатов
- Настройка сервиса Webim
- Операторы и РМО
- Отделы в сервисе Webim
- Панель приборов: ответы на вопросы
- Эксплуатация сервиса Webim
- Основные понятия и термины
- Сброс пароля
- Система управления ролями и правами доступа
- Шаг 1. Установка виджета Webim на сайт
- Шаг 2. Начальная настройка сервиса
- Шаг 3. Регистрация оператора
- Шаг 4. Подключение каналов общения
-
-
-
- 01. Обнаружение нового посетителя, ожидающего ответа
- 02. Выбор посетителя сайта из списка и начало диалога
- 03. Набор ответа посетителю, выбор шаблона
- 04. Запрос контактной информации у посетителя
- 05. Отправка файла посетителю
- 06. «Телепортация» пользователей
- 07. Переадресация диалога другому оператору
- 08. Отправка переписки на адрес электронной почты оператора
- 09. Назначение категории посетителю
- 10. Блокировка посетителя
- 11. Вставка гиперссылки в сообщение
- 12. Добавление cкрытых сообщений
- 13. Проверка орфографии
- Agent`s Handbook
- Горячие клавиши в РМО
- Загрузка файлов в диалог
- Исходящие диалоги
- Как включить оповещения в Google Chrome
- Очереди в РМО
- Работа с офлайн-обращениями в РМО
-
- Автоприглашения
- Активность сотрудников
- Алгоритмы назначения чатов
- Видимость диалогов
- Возможности и ограничения Webim в каналах общения
- Вход в систему
- Геолокация посетителей
- График работы
- Добавление кнопки Webim в E-mail
- Закрытие диалогов
- Логотип компании в заголовке чата
- Маршрутизация чатов между операторами и ботами
- Настройка языков
- Общие настройки организации
- Ограничения по длине сообщений и полей
- Отделы
- Оценки
- Переназначение специализированных клавиш управления в РМО
- Приоритетные страницы
- Рассылки
- Регистрация операторов и назначение супервизоров
- Системные сообщения
- Список тайм-аутов
- Финансы
- Шаблоны ответов
-
-
- Встраивание административного интерфейса через iframe
- Горизонтальное масштабирование (кластеризация)
- Интеграция с почтовыми серверами
- Обработка файлов, загружаемых в чат
- Описание сервисных периодов Webim
- Параметры настроек сервера
- Редактор настроек аккаунта (account config)
- Редактор ресурсов
- Сетевые конфигурации сервиса Webim
-
-
-
- Webim Mobile SDK 3.0 для интеграции в мобильные приложения iOS
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для Android
- Информация о выпусках (Release notes) – Webim Mobile SDK 3 для iOS
- Справочник по Webim Mobile SDK – SDK для интеграции в мобильные приложения iOS (iPhone/iPad)
- Справочник по Webim Mobile SDK для интеграции в мобильные приложения Android
- Push-уведомления
- Webim Cordova Plugin
-
- Webim CRM postMessage Interface
- Как сделать ссылку кнопкой старта чата
- Маршрутизатор чатов
- Обработчики событий чата
- Процедура установки чата Webim на сайт в iframe
-
-
-
- Настройка интеграции с Facebook (для версий до 10.0 включительно)
- Настройка интеграции с Facebook с помощью приложения Webim
- Настройка интеграции с Instagram с помощью приложения Webim
- Настройка приложения для интеграции с Facebook (для версий до 10.0 включительно)
- Создание бизнес-аккаунта в Instagram
- Создание страницы организации в Facebook
- Skype
- Telegram
- Viber
- ВКонтакте
- Одноклассники
-
-
Горизонтальное масштабирование (кластеризация)
При развертывании продукта в расчете на работу в высоконагруженной среде возможно несколько схем с ресурсной избыточностью для повышения отказоустойчивости.
Помимо простейших вариантов active/stand-by схем, в Webim реализуемо размещение компонентов на отдельных нодах (хостах или ядрах процессора) с возможностью установки нескольких (>1) экземпляров каждого компонента. Это дает эффект горизонтального масштабирования (кластеризации) системы в целом с распределением нагрузки между нодами (балансировкой).
Масштабирование Webim Chat Backend
В Webim 10.3 появилось масштабирование компонента Webim Chat Backend (бэкенда чата). В отличие от других компонентов, Webim Chat Backend на данный момент может быть масштабирован только на два узла.
Принципиально схема масштабирования бэкенда чата выглядит следующим образом:
Масштабирование (кластеризация) предусматривает запуск избыточного числа экземпляров бэкенда и распределение приходящей нагрузки между ними.
Масштабирование является асимметричным, то есть, нагрузка между серверами распределяется неравномерно. В частности, сложная бизнес-логика на начальном этапе реализуется только на одном из серверов (master); другой сервер выступает в качестве вспомогательного (slave), работает только с данными о работе аккаунта и может самостоятельно отвечать на некоторые запросы.
Для синхронизации и актуализации данных между серверами осуществляется при помощи очередей сообщений Rabbit MQ. Каждый сервер обрабатывает информацию, появившуюся в очереди (например, при добавлении нового сообщения), благодаря чему данные актуализируются.
Настройка масштабирования
Для запуска масштабирования на сервере nginx в конфигурационный файл (/etc/nginx/sites-available/webim.conf) необходимо добавить следующее:
1.
location ~ \/l\/o\/set-status { proxy_pass https://127.0.0.1:8270; include /etc/nginx/webim-common/python_proxy_params; error_page 413 /webim/error-413.json; }
перед
location ~ \/l\/ { proxy_pass https://127.0.0.1:$tornado_port; include /etc/nginx/webim-common/python_proxy_params; error_page 413 /webim/error-413.json; }
2.
location ~ \/ws\/o\/delta { proxy_http_version 1.1; include /etc/nginx/webim-common/python_proxy_params; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass https://127.0.0.1:8270; }
перед
location ~ \/ws\/ { proxy_http_version 1.1; include /etc/nginx/webim-common/python_proxy_params; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass https://127.0.0.1:$tornado_port; }
Для того, чтобы масштабирование заработало, также необходимо добавить в конфигурационный файл main.ini следующие параметры:
- mq_host (имя хоста RabbitMQ)
- mq_port (порт подключения к RabbitMQ)
- mq_username (имя пользователя RabbitMQ)
- mq_password (пароль пользователя RabbitMQ)
- mq_virtual_host (значение name созданного виртуального хоста на стороне RabbitMQ)
У серверов, входящих в один кластер Webim Chat Backend, все конфигурационные файлы должны быть абсолютно одинаковыми. При этом у них должны отличаться значения параметра multinode_mode:
--multinode_mode=master (для master сервера)
--multinode_mode=slave (для slave сервера)
Для удобства администрирования рекомендуется добавить параметр mq_node_id_prefix в дополнительный конфигурационный файл webim_mq.ini, размещающийся в поддиректории /main.ini.d/.