例如;我在nifi群集中有3个nifi节点。这些节点的示例主机名;
我知道我可以从所有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群集中的每个节点?
答案 0 :(得分:2)
这取决于几件事...如果您安全运行,则将为特定于主机名的每个节点生成证书,因此Web请求中的主机需要与证书中的主机匹配,因此您在那种情况下不能使用本地主机。
这还取决于NiFi网络服务器的配置方式。如果nifi.web.http.host或nifi.web.https.host指定了特定的主机名,则Web服务器仅绑定到该主机名,并且可能不接受具有其他主机名的连接。在默认的不安全设置中,如果将nifi.web.http.host保留为空白,则它将绑定到所有接口。
您也许可以使用表达式语言功能来获取当前节点的主机名。因此,您可以将网址设置为“ http:// $ {hostname()} / nifi-api / controller / cluster”。