Балансировщик нагрузки Нифи

Я построил 3-х хостовый кластер nifi. Это работает, но я не могу использовать балансировщик. Все, что я могу сделать, это подключиться напрямую к одному хосту. Кто-нибудь ставил нифи кластер с помощью балансировщика? т.е. как вы решаете проблему с сертификатом?


person ozw1z5rd    schedule 14.10.2016    source источник


Ответы (1)


Вы пытаетесь сбалансировать нагрузку взаимодействия с пользовательским интерфейсом или определенного процессора/источника ввода? Благодаря кластеризации с нулевым мастером (ZMC) от NiFi, доступной в версии 1.0.0+, вы можете подключаться к пользовательскому интерфейсу любого подключенного узла, отслеживать и изменять поток. Если вы пытаетесь сбалансировать нагрузку на входные данные, я бы посоветовал либо иметь процессор с единой точкой входа, который работает на основном узле (см. отрывок ниже), а затем распределяет данные по всему кластеру, либо если вам действительно нужна балансировка нагрузки немедленно для производительности, возможно, настроив что-то вроде HAProxy или другого внешнего балансировщика нагрузки (даже циклического DNS) и указывая на все доступные узлы.

Если вы пытаетесь сбалансировать нагрузку в кластере, Группы удаленных процессов, которые позволяют осуществлять передачу между узлами, автоматически балансирует данные между доступными узлами NiFi.

Из Руководства администратора NiFi.

Первичный узел: в каждом кластере есть один первичный узел. На этом узле можно запускать изолированные процессоры (см. ниже). ZooKeeper используется для автоматического выбора основного узла. Если этот узел отключится от кластера по какой-либо причине, будет автоматически выбран новый основной узел. Пользователи могут определить, какой узел в настоящее время выбран в качестве основного узла, посмотрев на страницу управления кластером пользовательского интерфейса.

Изолированные процессоры: в кластере NiFi один и тот же поток данных выполняется на всех узлах. В результате каждый компонент в потоке выполняется на каждом узле. Однако могут быть случаи, когда DFM не хочет, чтобы каждый процессор работал на каждом узле. Самый распространенный случай — это использование процессора, который взаимодействует с внешней службой по плохо масштабируемому протоколу. Например, процессор GetSFTP извлекает из удаленного каталога, и если процессор GetSFTP работает на каждом узле в кластере, пытается одновременно извлекать данные из одного и того же удаленного каталога, могут возникнуть условия гонки. Таким образом, DFM может настроить GetSFTP на основном узле для работы в изоляции, что означает, что он работает только на этом узле. Он может извлекать данные и — при правильной конфигурации потока данных — распределять их нагрузку между остальными узлами в кластере. Обратите внимание, что, хотя эта функция существует, также очень часто просто используют автономный экземпляр NiFi для извлечения данных и передачи их в кластер. Это просто зависит от доступных ресурсов и от того, как администратор решает настроить кластер.

person Andy    schedule 14.10.2016
comment
Привет, Энди, я пытаюсь сбалансировать нагрузку пользовательского интерфейса. Но есть некоторые проблемы с балансировщиком. Когда запрос проходит через балансировщик, я больше не могу войти в систему. Также кластер находится за nifi.thiscompanydomain.com, а сертификат, видимый браузером, зависит от хоста, выбранного балансировщиком. Поскольку каждый хост имеет свой собственный сертификат, это вызывает некоторые проблемы. - person ozw1z5rd; 14.10.2016
comment
Понял. Мне нужно больше подробностей о том, что невозможно войти в систему, т. е. какой механизм аутентификации используется и т. д., но проблема с сертификатом может быть легко решена — можете ли вы добавить nifi.thiscompanydomain.com в качестве записи SAN в сертификаты NiFi? - person Andy; 14.10.2016
comment
Аутентификация — ldap. Я проверил, и балансировщик маршрутизаторов для каждого соединения использует другой хост. Это делает беспорядок. Насчет SAN, да... это может быть хорошим решением. - person ozw1z5rd; 17.10.2016
comment
Аутентификация LDAP должна работать по умолчанию — убедитесь, что учетные данные менеджера верны в $NIFI_HOME/conf/login-identity-providers.xml, а на провайдера ссылается nifi.security.user.login.identity.provider= в $NIFI_HOME/conf/nifi.properties. См. Руководство администратора NiFi. - Аутентификация пользователя. - person Andy; 17.10.2016
comment
Да, аутентификация LDAP работает. Проблемы заключались в выпуске сертификата (спасибо за подсказку о поле SAN) и в том, как политика циклического перебора в балансировщике. - person ozw1z5rd; 17.10.2016