Nifi. Использование Azure Event Hub в среде корпоративного прокси - PullRequest
2 голосов
/ 03 апреля 2019

У меня есть сценарий использования в Nifi для получения данных из Event Hub. Тем не менее, сервер Nifi сидит за прокси. Прокси-сервер также требует имя пользователя и пароль для авторизации. До сих пор я обнаружил, что GetAzureEventHub процессор выполняет свою работу, но ему не хватает полного сервиса прокси-контроллера.

Я хотел бы знать, что может быть лучшим способом справиться с такой ситуацией.

1 Ответ

4 голосов
/ 10 апреля 2019

Есть 2 способа обойти это.Клиент Azure Event Hubs по умолчанию настроен на общение со службой с использованием открытого стандарта AMQP .

Назначенный порт IANA для защищенной версии протокола AMQP aka AMQPS равен 5671.Итак, здесь идет первый вариант:

  • Вам нужно будет работать с вашим администратором, чтобы разрешить трафик на порт 5671 и отказаться от аутентификации username-password (aka BASIC) для этого трафика.Это сложный вариант, но он должен быть технически возможен.

Второй вариант, и, пожалуй, самый практичный - в вашем случае:

  • настроить библиотеку Event Hubs наговорить AMQP более WebSockets.При создании EventHubClient установите для свойства TransportType для ConnectionStringBuilder значение AMQP_WEB_SOCKETS.Это позволит вам говорить по стандартному порту HTTPS, с которым настроены все прокси-серверы - который использует WebSockets.Если вы настраиваете proxySettings на уровне процесса Java, библиотека уже понимает это.Я попытался задокументировать подробные инструкции здесь .

Теперь единственное ограничение, которое вы столкнетесь с этим подходом, заключается в том, что - apache-nifi использует и более старую версию клиента EventHubs (0.14.x), whereas, you will need 1.2.0 to be able to use the WebSockets over proxy`.

В этих двух версиях произошли существенные изменения - , которые мы здесь описали - которые должны помочь вам с миграцией. Удачного кодирования!

подробнее о концентраторах событий ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...