Я развернул несколько конвейеров в 3-узловом кластере NiFi в производстве, из которых один похож на ваш вариант использования.
Q-1) Очень просто и легко построить конвейер для вашегопотребительная случай.Поскольку вы не упомянули типы задач, связанных с processing
json, я предполагаю общие задачи.Общей задачей, включающей JSON, может быть проверка схемы, которая может быть выполнена с использованием ValidateRecord
Processor, преобразование с использованием JoltTransformRecord
Processor, извлечение значений атрибутов с использованием EvaluateJsonPath
, преобразование json в какой-либо другой формат, например, avro, с использованием ConvertJSONToAvro
процессоров и т. Д.Nifi дает вам возможность независимо масштабировать каждую стадию / процессор в конвейерах.Например, если преобразование с использованием JoltTransformRecord отнимает много времени, его можно масштабировать для запуска N
одновременных задач в каждом узле, настроив Concurrent Tasks
на вкладке Scheduling
.
Q-2) Насколько *Что касается процессора 1013 *, то управление смещением осуществляется сначала путем фиксации сеанса процессора NiFi, а затем смещения Kafka, что означает, что у нас есть хотя бы одна гарантия по умолчанию.Когда Kafka запускает перебалансировку потребителей для данного раздела, процессор быстро фиксирует (сеанс процессора и смещение Kafka) все, что получил, и возвращает потребителя в пул для повторного использования.
ConsumeKafka_2_0 обрабатывает смещение принятия, когда членыизменение группы потребителей или изменение подписки участников.Это может произойти, когда процессы умирают, добавляются новые экземпляры процессов или старые экземпляры возвращаются к жизни после сбоя.Также позаботились о случаях, когда количество разделов подписанной темы административно корректируется.