Стратегия балансировки нагрузки NiFi для повышения пропускной способности и снижения ввода-вывода

#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