如何让无持久化的Apache Ignite网格启动时不自动激活?
Apache Ignite无持久化模式下以非激活状态启动的实现方案
无持久化的Ignite网格可以直接配置为非激活状态启动,完全不需要依赖启动延迟,以下是具体实现方式:
配置方式
XML配置
在Ignite的XML配置文件中添加activationPolicy配置项:
<bean class="org.apache.ignite.configuration.IgniteConfiguration"> <!-- 其他原有配置 --> <property name="activationPolicy" value="NEVER"/> </bean>
Java代码配置
在初始化IgniteConfiguration时直接设置激活策略:
IgniteConfiguration cfg = new IgniteConfiguration(); // 启用无持久化(默认即为无持久化,若之前有配置可保持) cfg.setPersistentStoreConfiguration(null); // 设置启动后保持非激活状态 cfg.setActivationPolicy(ActivationPolicy.NEVER); Ignite ignite = Ignition.start(cfg);
命令行启动参数
通过JVM参数指定激活策略:
./ignite.sh -DIGNITE_ACTIVATION_POLICY=NEVER
后续操作
节点启动并完成所有初始检查后,可通过以下方式手动激活集群:
- API方式:
ignite.cluster().active(true);
- 命令行工具:
control.sh --set-active true
注意事项
- 该配置仅对无持久化模式生效,持久化模式下Ignite默认启动后保持非激活状态。
- 集群处于非激活状态时,无法执行缓存读写、任务提交等业务操作,正好适配你在任务处理前完成检查的需求。
内容的提问来源于stack exchange,提问作者Lokesh
相关产品推荐
相关产品推荐

