Apache nifi 我可以使用localhost而不是Nifi集群中的实际节点ip地址访问nifirestapi吗?

Apache nifi 我可以使用localhost而不是Nifi集群中的实际节点ip地址访问nifirestapi吗?,apache-nifi,Apache Nifi,比如,;我在nifi集群中有3个nifi节点。这些节点的主机名示例 192.168.12.50:8080(初级) 192.168.54.60:8080 192.168.95.70:8080 我知道我可以从所有nifi节点访问nifi rest api。我有用于从RESTAPI获取集群摘要的GetHTTP处理器,该处理器只在pimary节点上运行。我确实将这个处理器的“URL”属性设置为192.168.12.50:8080/nifi api/controller/cluster 但是,如果主节点关

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

  • 192.168.12.50:8080(初级)
  • 192.168.54.60:8080
  • 192.168.95.70:8080
  • 我知道我可以从所有nifi节点访问nifi rest api。我有用于从RESTAPI获取集群摘要的GetHTTP处理器,该处理器只在pimary节点上运行。我确实将这个处理器的“URL”属性设置为192.168.12.50:8080/nifi api/controller/cluster

    但是,如果主节点关闭,将选择新的主节点。因此,我将无法从新的主节点访问192.168.12.50:8080地址。因为该节点已关闭。所以,我将无法从RESTAPI获得集群摘要结果


    在这种情况下,我是否可以对nifi集群中的每个节点使用“localhost:8080/nifi api/controller/cluster”而不是“192.168.12.50:8080/nifi api/controller/cluster”。。。如果您安全地运行,则会为特定于主机名的每个节点生成证书,因此web请求中的主机需要与证书中的主机匹配,因此在这种情况下不能使用localhost

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


    您可以使用expression language函数获取当前节点的主机名。因此,您可以将url设置为类似“http://${hostname()}/nifi api/controller/cluster”的格式。首先,感谢您的回复!用于安全nifi集群;流量会是这样吗?1-ExecuteProcess:使用主机名获取当前节点的令牌()2-ExecuteProcess:从1接收令牌,然后使用令牌从rest api获取数据,对吗?是的,应该是可能的,如果您只从服务器使用keystore.jsk,您也可以避免需要令牌,因此,您的http处理器将使用与nifi.properties配置相同keystore.jks和truststore.jks的SSLContextService。我将对您的第二个建议进行更多研究。现在一切都清楚了!非常感谢你!