Настройка Kafka адаптера
Обзор
Kafka адаптер Accelera Flows - это модуль для получения и обработки сообщений из очереди Kafka.
Формат сообщения - JSON. Пример:
{
"TRANSACTION_DATE": "21-01-2021 11:36:30",
"ACCOUNT_NUMBER": "123456789",
"MERCHANT_CITY": "London",
"MERCHANT_COUNTRY": "UK",
"MERCHANT_CATEGORY": "5699",
"TRANSACTION_ID": "123456789"
}На параметры из входящего сообщения будут ссылаться переменные ID, EVENT и CONTEXT для формирования события в формате accelera.
Конфигурация
Распакуйте образы приложения из файла flows_kafka_adapter_{your_version}.tar.gz следующей командой:
docker load < flows_kafka_adapter_{your_version}.tar.gzСоздайте файл docker-compose.yaml со следующим содержимым:
version: '3'
services:
kafka_adapter:
image: devcubesolutions/flows_kafka_adapter:latest
container_name: kafka_adapter
restart: unless-stopped
environment:
- NODE_ENV=development
- TZ=Europe/Moscow
- LOG_LEVEL=debug
- TOPIC=topicName
- GROUP=groupName
- BROKER=localhost:9092
- USERNAME=username
- PASSWORD=password
- PROTOCOL=SASL_SSL
- CA=path_to_cert
- MECHANISM=SCRAM-SHA-512
- ENDPOINT=ex-triggers
- ID={{ id_field }}
- EVENT={{ event_field }}
- CONTEXT=clientId,{{clientId}},id_field,{{id_field}},first_name,{{first_name}}Описание параметров
image
Имя образа, который был распакован на предыдущем шаге, можно узнать командой docker images
container_name
Имя контейнера при запуске, рекомендуется оставить без изменения
restart
Политика рестарта процесса при остановке или ошибке, по умолчанию 'unless-stopped'
Environment
NODE_ENV - режим запуска, рекомендуется значение production.
TZ - Временная зона, по умолчанию Europe/Moscow
CONNECTION_RETRIES - Количество попыток переподключения
LOGGER_LEVEL - Уровень логирования (trace, debug, info, warn, error, fatal)
BROKER - адрес подключения к Kafka
BROKER_CONNECTION - адрес подключения к RabbitMQ
TOPIC - Хост Kafka брокера
GROUP - Группа подключения
CLIENT - Имя клиента брокера
CA - Путь к SSL сертификату (опционально)
USERNAME - Логин брокера
PASSWORD - Пароль брокера
ENDPOINT - Имя очереди или топика с потоком событий. Рекомендуется указать ex-triggers.
PROTOCOL - Протокол соединения. SASL_SSL для соединения через сертификат, PLAINTEXT для обычного соединения логин/пароль
MECHANISM - Механизм шифрования, рекомендуется SCRAM-SHA-512
ID - Идентификатор события, может быть константой или ссылкой на параметр через {{ }}
EVENT - Имя события, может быть константой или ссылкой на параметр через {{ }}
CONTEXT - Параметры, которые будут переданы в событии через запятую. Задается в формате <имя параметра>,<ссылка на параметр через {{ }}>
FILTER_FIELD - Поле, на котором будет выполняться фильтрация. Пример - param1.param2, или param.array.0
FILTER_VALUES - Значения поля из FILTER_FIELD, которые будут переданы далее для обработки. Пример - value1,value2,value3
Запуск
Для запуска адаптера используйте следующую команду:
docker-compose -f {путь к вашему docker-compose файлу} upПолучить доступ к логам и проверить работоспособность адаптера можно командой
docker logs -f kafka_adapterОстановка
Для остановки адаптера используйте команду:
docker-compose -f {путь к вашему docker-compose файлу} down