首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NiFi引导程序如何确定NiFi是否未运行?

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

Stack Overflow用户
提问于 2021-06-18 03:13:14
回答 1查看 154关注 0票数 0

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

代码语言:javascript
复制
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文件的存在?如果是这样的话,它多久检查一次?是可配置的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-18 15:27:42

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

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

代码语言:javascript
复制
            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

代码语言:javascript
复制
    public static boolean isAlive(final Process process) {
        try {
            process.exitValue();
            return false;
        } catch (final IllegalStateException | IllegalThreadStateException itse) {
            return true;
        }
    }

听起来你的主要nifi进程因为某种原因而停止了…检查服务器上可用的内存和bootstrap.conf中的-Xms-Xmx参数-通常这是主要原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68025305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档