Json-extractor-interceptor#
Реализует интерфейс ProducerInterceptor, позволяет добавлять в заголовки сообщения поля, извлеченные из тела JSON-сообщения c помощью JsonPath.
Предусловия#
Поддерживаемые типы данных:
String;Array<Byte>(преобразуется в строку с настраиваемой кодировкой);Любой другой объект (преобразуется в строку с помощью метода
toString).
Последовательность выполнения#
Подключение к Kafka Producer#
Добавить актуальную версию интерсептора в зависимости проекта.
Добавить настройки интерсептора к настройкам Kafka Producer в соответствии с примером.
Примеры конфигурации#
Пример JSON#
{
"message": {
"id": "someId",
"body": "messageBody"
}
}
Пример конфигурации для извлечения поля id и добавления его в заголовок под именем MessageID#
...
# 1) Подключить interceptor
interceptor.classes = ru.sbt.ss.kafka.clients.producer.JsonExtractorInterceptor
# 2) Указать путь до нужного поля с помощью JsonPath
interceptor.json.extractor.path = $['message']['id']
# 3) Укaзать имя заголовка, в который будет добавлено значение поля
interceptor.json.extractor.header.name = MessageID
# 4) ОПЦИОНАЛЬНО Укзаать тип кодировки (по умолчанию UTF-8) для типов Array<Byte>
# interceptors.json.extractor.encoding = UTF-8
Результат#
Выполнено подключение интерсептора Json-extractor-interceptor.