Nifi Api
Nifi通过Restful API的形式将自身的功能开放,用户可以在编写脚本时,通过HTTPClient的方式直接调用这些接口,以达到对Nifi自动化操作的目的
参考
Nifi API Document:https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
环境
- Nifi 单节点服务或Nifi 集群模式,需要能访问到Nifi开放的8080端口(默认)
- 需通过HttpClient方式访问
调用
我们不能和之前一样调用localhost:8080/nifi/
,而是需要调用localhost:8080/nifi-api/
官方文档中没有详细描述如何调用,其实际调用链接形式应如下:
# 官方提供的地址
/controller/bulletin
# 正常的地址
http://{
ip}:{
port}/nifi-api/controller/bulletin
# 标准格式
http://{
ip}:{
port}/nifi-api/{
service}
查看集群节点信息
假设本地存在一个Nifi集群,节点分别是192.168.96.130
,192.168.96.131
,192.168.96.132
开放的端口均为默认的8080
端口
如果我们想要通过api得知当前集群中节点的情况,我们可以访问:
# Get请求
# 可以访问任意一台在集群中的主机
http://192.168.96.130:8080/nifi-api/controller/cluster
Nifi在接受到请求后,会向我们返回一个JSON字符串,如下:
{
"cluster": {
"nodes": [
{
"nodeId": "2130272e-8057-4e7e-8806-2b14663ded65",
"address": "192.168.96.131",
"apiPort": 8080,
"status": "CONNECTED",
"heartbeat": "03/18/2021 16:08:58 CST",
"roles": [],
"activeThreadCount": 0,
"queued": "0 / 0 bytes",
"events": [
{
"timestamp": "03/18/2021 11:00:32 CST",
"category": "INFO",
"message": "Node Status changed from CONNECTING to CONNECTED"
},
{
"timestamp": "03/18/2021 11:00:22 CST",