我在Nifi中有一个用例来使用Event Hub中的数据。但是,Nifi服务器位于代理服务器后面。代理还需要用户名和密码才能进行授权。到目前为止,我发现GetAzureEventHub
处理器完成了这项工作,但它缺乏完整的代理控制器服务。
我想知道什么是处理这种情况的最佳方式。
它有两种方法。默认情况下,Azure Event Hubs客户端配置为使用名为AMQP的开放标准与服务进行通信。
IANA
指定的AMQP
协议a.k.a AMQPS
安全版本的端口是5671
。所以,这是第一个选择:
5671
上的流量,并为此流量选择退出用户名密码(也称为BASIC)身份验证。这是一个复杂的选择 - 但是,技术上应该是可行的。第二个选项,我想最实用的一个 - 在你的情况下:
AMQP
与WebSockets
交谈。在创建EventHubClient
时,将TransportType
上的ConnectionStringBuilder
属性设置为AMQP_WEB_SOCKETS
。这将允许您谈论所有代理配置为运行的标准HTTPS端口 - WebSockets
使用哪个。如果在java进程级别配置proxySettings
,则库已经了解它。我试图记录详细说明here。现在,这种方法的唯一限制是--apache-nifi
使用和旧版本的EventHubs客户端(0.14.x), whereas, you will need
1.2.0to be able to use the
WebSockets over proxy`。
这两个版本之间存在一些重大变化 - that we documented here - 这应该可以帮助您进行迁移。快乐的编码!