Сервис синхронизации Exchange Listener реализует синхронизацию Creatio с почтовыми сервисами MS Exchange и IMAP/SMTP используя механизм подписки.
Схема работы
Сервис состоит из двух обязательных компонентов:
- Основного модуля Exchange Listener.
- NoSQL СУБД Redis.
Модуль Exchange Listener
Использует учетные данные почтового ящика и создает подписку (subscription) для получения событий при поступлении новых писем. Открытая подписка остается в памяти компонента для обеспечения максимально оперативной реакции на получение нового письма. При получении соответствующего события выполняется загрузка экземпляра письма.
NoSQL СУБД Redis
Используется для создания масштабируемой и отказоустойчивой системы узлов-обработчиков. Хранилище Redis содержит информацию об обслуживаемых почтовых ящиках. Это позволяет любому контейнеру обработать запросы Creatio на создание новой подписки или проверить статус конкретной подписки, независимо от того, на каком узле открыта подписка.
Обязательные требования к Redis:
- Разрешен анонимный доступ.
- Выделена отдельная база данных для работы сервиса Exchange Listener.
Масштабируемость
Обработка запросов по умолчанию производится отдельными узлами типа StatefulSet из расчета 1 реплика обработчика на 50 активных почтовых ящиков. За количество реплик отвечает параметр replicaCount. При необходимости можно увеличить количество обработчиков, указав необходимое значение при установке. Возможна настройка автоматического масштабирования по количеству активных подписок.
Совместимость с продуктами Creatio
Сервис синхронизации Exchange Listener версии 1.0 (поддержка MS Exchange) совместим со всеми продуктами Creatio версий 7.15.2 и выше.
Сервис синхронизации Exchange Listener версии 2.0 (поддержка IMAP/SMTP) совместим со всеми продуктами Creatio версий 7.16 и выше.
Варианты установки
Для развертывания сервиса и обеспечения работы приложения на продуктовой среде предпочтительным способом является использование оркестратора Kubernetes и пакетного менеджера Helm. Подробная инструкция по развертыванию сервиса с использованием Kubernetes содержится в статье Развернуть сервис синхронизации с использованием Kubernetes.
Для более быстрого развертывания в среде разработки можно использовать Docker. Подробно о том, как развернуть сервис в контейнере описано в статье Развернуть сервис синхронизации в Docker.
Для развертывания сервиса достаточным условием является использование in-memory хранилища.