#apache-nifi
#apache-nifi
Вопрос:
Для потока данных, выполняемого в кластеризованном экземпляре NiFi, при настройке соединений между процессорами у меня есть два варианта.
Предполагается, что три процессора A, B, C
Вариант 1:
A -> Round Robin -> B -> Round Robin -> C
или
Вариант 2:
A -> Round Robin -> B -> C
Учитывая, что моя работа состоит из небольших (несколько КБ) и больших (несколько МБ) файлов потока, было бы лучше выбрать вариант 2? Поскольку в варианте 2 мы уменьшаем сетевой ввод-вывод, не распределяя файлы потока снова между узлами. Или вариант 1, где нагрузка распределяется между узлами вечером для всех трех процессоров.
В настоящее время я могу измерить пропускную способность, но у меня нет способа измерить ввод-вывод, отсюда и вопрос.
Спасибо
Ответ №1:
В основном это зависит от используемых процессоров.
Если ваши процессоры B равны 1: 1, то есть: для потока данных у вас более или менее одинаковый размер вывода и одинаковое количество потоковых файлов, вам следует выбрать вариант 2
A -> Round Robin -> B -> C
Однако, если ваш процессор равен 1: X и он зависит от файла потока (например, для разделения содержимого файла потока и добавления информации), вы можете исключить, что у машины гораздо больше работы, чем у других, поэтому можно рассмотреть циклический перебор с вариантом 1 :
A -> Round Robin -> B -> Round Robin -> C