NiFi引导程序如何确定NiFi是否未运行



我偶尔会看到NiFi重新启动。在nifi-app.log中,没有任何错误指示。NiFi没有处理任何数据,服务器此时也不忙。当我在nifi-bootstrap.log中看到时

2021-06-17 16:44:00,551 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.status
2021-06-17 16:44:00,551 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.lock
2021-06-17 16:44:00,551 WARN  [main] org.apache.nifi.bootstrap.RunNiFi Apache NiFi appears to have died. Restarting...
2021-06-17 16:44:00,552 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.pid
2021-06-17 16:44:00,555 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Saved Pid 17260 to /opt/nifi-1.10.0/run/nifi.pid
2021-06-17 16:44:00,555 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.status
2021-06-17 16:44:00,557 DEBUG  [main] org.apache.nifi.bootstrap.RunNiFi Saved Properties {pid=17260} to /opt/nifi-1.10.0/run/nifi.status
2021-06-17 16:44:00,557 INFO  [main] org.apache.nifi.bootstrap.Command Launched Apache NiFi with Process ID 17260
2021-06-17 16:44:00,558 INFO  [main] org.apache.nifi.bootstrap.RunNiFi Successfully started Apache NiFi with PID 17260
2021-06-17 16:44:01,128 DEBUG  [NiFi Bootstrap Command Listener] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.status
2021-06-17 16:44:01,128 DEBUG  [NiFi Bootstrap Command Listener] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.pid
2021-06-17 16:44:01,131 DEBUG  [NiFi Bootstrap Command Listener] org.apache.nifi.bootstrap.RunNiFi Saved Pid 17260 to /opt/nifi-1.10.0/run/nifi.pid
2021-06-17 16:44:01,131 DEBUG  [NiFi Bootstrap Command Listener] org.apache.nifi.bootstrap.RunNiFi Status File: /opt/nifi-1.10.0/run/nifi.status

我的问题是;引导过程是如何确定";NiFi似乎已经死了";?它是否在寻找nifi.pid和nifi.status文件的存在?如果是,它多久检查一次?这是可配置的吗?

根据源代码,nifi引导程序通过检查进程是否有可用的退出代码,每秒检查一次(不可配置(主进程是否处于活动状态。

https://github.com/apache/nifi/blob/820b2cff29bf3a0d97399667264591b995cc9e45/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java#L1273

while (true) {
final boolean alive = isAlive(process);
if (alive) {
try {
Thread.sleep(1000L);
} catch (final InterruptedException ie) {
}
} else {
... restart process ...

https://github.com/apache/nifi/blob/820b2cff29bf3a0d97399667264591b995cc9e45/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java#L1028

public static boolean isAlive(final Process process) {
try {
process.exitValue();
return false;
} catch (final IllegalStateException | IllegalThreadStateException itse) {
return true;
}
}

听起来你的主要nifi进程由于某种原因停止了。。。检查服务器和CCD_ 1&CCD_ 2参数在CCD_。

最新更新