Nifi:使用企业代理环境使用 Azure 事件中心
Nifi: Consume Azure Event Hub with an enterprise proxy environment
我在 Nifi 中有一个使用事件中心数据的用例。但是,Nifi 服务器位于代理后面。代理还需要用户名和密码进行授权。到目前为止,我发现 GetAzureEventHub
处理器可以完成这项工作,但它缺少完整的代理控制器服务。
我想知道在这种情况下最好的处理方法是什么。
有两种解决方法。默认情况下,Azure 事件中心客户端配置为使用名为 AMQP 的开放标准与服务通信。
为 AMQP
协议 a.k.a AMQPS
的安全版本分配的 IANA
端口是 5671
。所以,这里是第一个选项:
- 您将需要与您的管理员合作以允许端口
5671
上的流量并选择退出此流量的用户名-密码(又名 BASIC)身份验证。这是一个复杂的选项 - 但是,在技术上应该是可行的。
第二个选项,我猜是最实用的一个 - 在你的情况下:
- 配置事件中心库以通过
WebSockets
与 AMQP
对话。在创建 EventHubClient
时,将 ConnectionStringBuilder
上的 TransportType
属性 设置为 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`。
这 2 个版本之间有一些重大变化 - that we documented here - 这应该有助于您进行迁移。编码愉快!
我在 Nifi 中有一个使用事件中心数据的用例。但是,Nifi 服务器位于代理后面。代理还需要用户名和密码进行授权。到目前为止,我发现 GetAzureEventHub
处理器可以完成这项工作,但它缺少完整的代理控制器服务。
我想知道在这种情况下最好的处理方法是什么。
有两种解决方法。默认情况下,Azure 事件中心客户端配置为使用名为 AMQP 的开放标准与服务通信。
为 AMQP
协议 a.k.a AMQPS
的安全版本分配的 IANA
端口是 5671
。所以,这里是第一个选项:
- 您将需要与您的管理员合作以允许端口
5671
上的流量并选择退出此流量的用户名-密码(又名 BASIC)身份验证。这是一个复杂的选项 - 但是,在技术上应该是可行的。
第二个选项,我猜是最实用的一个 - 在你的情况下:
- 配置事件中心库以通过
WebSockets
与AMQP
对话。在创建EventHubClient
时,将ConnectionStringBuilder
上的TransportType
属性 设置为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`。
这 2 个版本之间有一些重大变化 - that we documented here - 这应该有助于您进行迁移。编码愉快!