我可以使用本地主机而不是Nifi群集中的实际节点IP地址访问Nifi Rest-API吗?

时间:2019-01-25 11:15:57

标签: apache-nifi

例如;我在nifi群集中有3个nifi节点。这些节点的示例主机名;

  1. 192.168.12.50:8080(主要)
  2. 192.168.54.60:8080
  3. 192.168.95.70:8080

我知道我可以从所有nifi节点访问nifi-rest api。我有GetHTTP处理器,用于从rest-api获取群集摘要,并且该处理器仅在pimary节点上运行。我确实将此处理器的“ URL”属性设置为 192.168.12.50:8080/nifi-api/controller/cluster

但是,如果主节点关闭,则将选择新的主节点。因此,我将无法从新的主节点访问192.168.12.50:8080地址。因为此节点已关闭。因此,我将无法从rest-api获取群集摘要结果。

在这种情况下,我可以使用 “ localhost:8080 / nifi-api / controller / cluster” 代替 “ 192.168.12.50: 8080 / nifi-api / controller / cluster” 用于nifi群集中的每个节点?

1 个答案:

答案 0 :(得分:2)

这取决于几件事...如果您安全运行,则将为特定于主机名的每个节点生成证书,因此Web请求中的主机需要与证书中的主机匹配,因此您在那种情况下不能使用本地主机。

这还取决于NiFi网络服务器的配置方式。如果nifi.web.http.host或nifi.web.https.host指定了特定的主机名,则Web服务器仅绑定到该主机名,并且可能不接受具有其他主机名的连接。在默认的不安全设置中,如果将nifi.web.http.host保留为空白,则它将绑定到所有接口。

您也许可以使用表达式语言功能来获取当前节点的主机名。因此,您可以将网址设置为“ http:// $ {hostname()} / nifi-api / controller / cluster”。