如何在后台启动Ignite节点?如何正确关闭Ignite节点?

问题描述 投票:0回答:1
  1. 我可以通过ignite.sh启动一个节点并在后台运行吗?具体操作方法是什么?

  2. 如果是后台启动,如何正确关闭这个节点?

  3. 如果是前台启动,ctrl+c结束,能保证缓存中的数据持久化到数据库吗?如果是的话,后台启动可以做到这一点吗?

系统:Centos 7

后台数据库:mongodb

ignite
1个回答
0
投票
  1. 您可以使用标准 Linux 机制在后台运行应用程序:nohup bash
    ./ignite.sh ../config/default-config.xml &
  2. 您可以使用
    fg%<process_ID>
    将应用程序带到前台,其中可以使用
    jobs
  3. 找到 process_ID
  4. 优雅关闭意味着Ignite将在停止节点时执行一些额外的清理和维护例程,这称为关闭挂钩。根据 docs,有多种方法可以优雅地停止节点:

以编程方式调用 Ignite.close()

以编程方式调用 System.exit()

发送用户中断信号。 Ignite 使用 JVM 关闭挂钩在 JVM 停止之前执行自定义逻辑。如果您通过运行 ignite.sh 启动节点并且不将其与终端分离,则可以通过按 Ctrl+C

来停止节点

通过发送kill -9 sig 来终止进程不会触发关闭挂钩,并且在某些极端情况下可能会导致数据损坏等问题。

配置

J-DIGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN=true
或ShutdownPolicy.Graceful(相同)显式强制进行额外的备份一致性检查,以确保节点不会离开集群,如果这会导致分区丢失,即如果主节点和备份节点(如果有) )分区离开了网格,请查看此文档以获取更详细的说明。在大多数情况下,您不会关闭此功能,我建议您保留此设置。

但是,如果您不需要备份验证,您可以删除

J-DIGNITE_WAIT_FOR_BACKUPS_ON_SHUTDOWN=true
并将 SIGINT 发送到 Java 进程。

为了检查节点是否正常停止,您应该在日志中看到以下消息:

[INFO][shutdown-hook] Invoking shutdown hook...
  1. 为了确保没有数据写入集群,您还可以在停止集群之前使用以下命令停用集群:
    ./control.sh --set-state INACTIVE
© www.soinside.com 2019 - 2024. All rights reserved.