Nifi:使用企业代理环境使用Azure Event Hub

时间:2019-04-03 16:19:09

标签: apache-nifi azure-eventhub

我在Nifi中有一个用例,可以使用Event Hub中的数据。但是,Nifi服务器位于代理后面。代理还需要用户名和密码进行授权。到目前为止,我发现GetAzureEventHub处理器可以完成这项工作,但是它缺乏完整的代理控制器服务。

我想知道在这种情况下最好的方法是什么。

1 个答案:

答案 0 :(得分:4)

有两种解决方法。默认情况下,Azure Event Hubs客户端配置为使用称为AMQP的开放标准与服务进行通信。

IANA协议(又称为AMQP)的安全版本分配的AMQPS端口是5671。因此,这里是第一个选择:

  • 您将需要与管理员合作,以允许端口5671上的流量,并为此流量选择退出用户名密码(aka BASIC)身份验证。这是一个复杂的选择-但在技术上应该可行。

第二种方法,我猜是最实用的一种方法-

  • 配置事件中心库以通过AMQP进行WebSockets对话。创建EventHubClient时,请将TransportType的{​​{1}}属性设置为ConnectionStringBuilder。这将允许您在标准HTTPS端口上进行讨论,所有代理都配置为与标准HTTPS端口一起运行-AMQP_WEB_SOCKETS使用。如果在Java进程级别配置WebSockets,则该库已经可以理解。我试图记录详细说明here

现在,使用此方法的唯一局限性是-proxySettings使用较旧版本的EventHubs客户端(apache-nifi 1.2.0 0.14.x), whereas, you will need WebSockets over proxy`。

这两个版本之间有一些重大更改- that we documented here-应该可以帮助您进行迁移。编码愉快!

more on Event Hubs...