首页 > 解决方案 > 如何在关机前触发点火检查点?

问题描述

我的 java 应用程序中有一个嵌入式 Ignite 实例。

当我关闭我的应用程序时,Ignite 已正确关闭:

@PreDestroy
public void preDestroy() {
    log.info("Ignite Destroying...");
    ignite.close();
}

我希望在“Ignite.close”操作期间所有 wal 文件都被刷新。但这并没有发生,当我启动我的应用程序时,我看到以下内容:

Applying lost cache updates since last checkpoint record [lastMarked=FileWALPointer [idx=255, fileOff=52006828, len=99257], lastCheckpointId=ff637138-fb4f-4012-bce6-1728e6bf5162]

我必须等待该操作完成。

如何在应用程序关闭之前手动触发 wal 检查点?

标签: javaignite

解决方案


您可以使用Ignition.stop(false)来避免停止当前检查点。

不幸的是,强制检查点的唯一方法是停用您的集群。

见命令。你也可以用代码来做。--deactivate control.sh

UPD:我认为另一种强制检查点的方法是在之前禁用的缓存上启用 WAL,这对于数据摄取工作流很方便。


推荐阅读