You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux服务器中Apache Ignite无需等待备份的优雅关停方法咨询

Apache Ignite 无需等待备份的优雅关停方案
  • 首先确认启动参数不要添加-J-DIGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN=true,该参数默认值为false,默认状态下关停进程不会等待备份副本同步完成,仅会完成内存脏页落盘、资源释放、节点退出集群拓扑通知等必要的优雅关停流程,完全符合你的需求。
  • 关停时使用SIGTERM信号(即默认kill命令不带参数的信号,对应kill -15)即可触发优雅关停逻辑,禁止使用kill -9强制终止进程,否则会直接跳过优雅退出流程,大概率导致数据损坏。

参考自动化关停脚本

#!/bin/bash
# 查找Ignite进程PID,过滤排除grep自身进程
IGNITE_PID=$(ps -ef | grep ignite.sh | grep -v grep | awk '{print $2}')
if [ -z "$IGNITE_PID" ]; then
    echo "未找到运行中的Ignite进程"
    exit 1
fi
# 发送SIGTERM信号触发优雅关停
kill $IGNITE_PID
# 等待进程退出,最长等待时长可根据实际场景调整
MAX_WAIT=60
WAIT_COUNT=0
while [ $WAIT_COUNT -lt $MAX_WAIT ]; do
    if ! ps -p $IGNITE_PID > /dev/null; then
        echo "Ignite进程已正常优雅退出"
        exit 0
    fi
    sleep 1
    WAIT_COUNT=$((WAIT_COUNT+1))
done
# 超时后不建议直接强制杀进程,此处仅作异常提示
echo "等待优雅退出超时,请检查节点是否存在IO阻塞等异常问题"
exit 1

补充说明

如果你部署的Ignite集群开启了持久化特性,即使不等待备份同步,优雅关停依然会等待本地内存中的未持久化脏页落盘,这个过程的耗时和当前节点未刷盘的数据量正相关,不属于备份等待流程,是保障数据安全的必须操作,不可跳过。
如果需要进一步缩短关停耗时,可以在关停前先执行./control.sh --cache write-through-all命令手动触发全量刷盘,减少关停阶段的落盘等待时间。

  • 也可以使用Ignite自带的控制脚本直接关停指定节点,无需手动查找PID:
    ./control.sh --baseline stop-node <目标节点ID/节点一致ID>
    该方式同样会触发优雅关停逻辑,默认不会等待备份同步。

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:39:04