Сервис синхронизации Email Listener

Основы

На заметку. В Creatio 8 Atlas сервис синхронизации Exchange Listener переименован на сервис синхронизации Email Listener. Это точнее отражает суть сервиса.

Назначение cервиса синхронизации Email Listener — синхронизация Creatio с почтовыми сервисами MS Exchange и IMAP/SMTP с использованием механизма подписки. Единственный вариант работы с почтовыми сервисами. Не поддерживается работа с почтовыми сервисами без использования микросервиса.

Схема работы 

Компоненты cервиса синхронизации Email Listener:

  • Основной модуль Email Listener.
  • NoSQL СУБД Redis.
  • Дополнительный модуль Email Listener.
  • RabbitMQ.

Схема работы сервиса синхронизации Email Listener представлена на рисунке ниже.

Модуль Email Listener 

Назначение модуля Email Listener — используя учетные данные почтового ящика, создает подписку (subscription) для получения событий при поступлении новых писем. Открытая подписка остается в памяти компонента для обеспечения оперативной реакции на получение нового письма. При получении соответствующего события выполняется загрузка экземпляра письма.

NoSQL СУБД Redis 

Назначение NoSQL СУБД Redis — создание масштабируемой и отказоустойчивой системы узлов-обработчиков. Хранилище Redis содержит информацию об обслуживаемых почтовых ящиках. Это позволяет любому контейнеру обработать запросы Creatio на создание новой подписки или проверить статус конкретной подписки, независимо от того, на каком узле открыта подписка.

Обязательные требования к Redis:

  • Авторизированный доступ сервиса Email Listener к Redis.
  • Выделена отдельная база данных для работы сервиса Email Listener.

Модуль Email Listener 

Назначение модуля Email Listener — поддержание масштабируемой и отказоустойчивой работы основного модуля Email Listener. Дополнительный модуль выполняет скачивание писем с почтового сервера и доставку их в приложение Creatio. Таким образом сглаживается обработка пиковых потоков писем для высоконагруженных сервисов. В этом случае API-компоненты менее загружены и не занимаются скачиванием писем, а доступны для управления подпиской и отправкой исходящих писем. Опциональный компонент сервиса. При его отсутствии эту роль выполняет основной модуль.

RabbitMQ 

Назначение RabbitMQ — поддержание масштабируемой и отказоустойчивой работы сервиса. Брокер очередей выполняет распределение задач между компонентами в высоконагруженных средах. Опциональный компонент сервиса.

Масштабируемость 

Обработка запросов по умолчанию выполняется отдельными узлами типа StatefulSet из расчета 1 реплика обработчика на 50 активных почтовых ящиков. За количество реплик отвечает параметр replicaCount. При необходимости можно увеличить количество обработчиков, указав необходимое значение при установке. Возможна настройка автоматического масштабирования по количеству активных подписок.

Совместимость с продуктами Creatio 

Сервис синхронизации Email Listener версии 1.0 (поддержка MS Exchange) совместим со всеми продуктами Creatio версий 7.15.2 и выше.

Сервис синхронизации Email Listener версии 2.0 (поддержка IMAP/SMTP) совместим со всеми продуктами Creatio версий 7.16 и выше.

Варианты установки 

Для развертывания сервиса и обеспечения работы приложения на продуктовой среде предпочтительным способом является использование оркестратора Kubernetes и пакетного менеджера Helm. Инструкция по развертыванию сервиса с использованием Kubernetes содержится в статье Развернуть сервис синхронизации с использованием Kubernetes.

Для быстрого развертывания в среде разработки можно использовать Docker. Инструкция по развертыванию сервиса с использованием Docker содержится в статье Развернуть сервис синхронизации в Docker.

Для развертывания сервиса достаточным условием является использование in-memory хранилища.