gpt4 book ai didi

java - 如何为 Apache Ignite 缓存配置持久存储?

转载 作者:行者123 更新时间:2023-12-02 02:01:29 25 4
gpt4 key购买 nike

我正在尝试为 Apache Ignite 配置持久存储,以便我的 IgniteCache 实例不会在应用程序重新启动时丢失数据。我的设置是从我的代码开始的本地单节点集群,如下所示:

IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setWorkDirectory("C:\\ignite");

// Ignite persistence configuration.
DataStorageConfiguration storageCfg = new DataStorageConfiguration();
storageCfg.setStoragePath("ignitedb/storage");
storageCfg.setWalPath("ignitedb/wal");
storageCfg.setWalArchivePath("ignitedb/wal/archive");

// Enabling the persistence.

storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);

// Applying settings.
cfg.setDataStorageConfiguration(storageCfg);

Ignite ignite = Ignition.getOrStart(cfg);
ignite.active(true);
// Get all server nodes that are already up and running.
Collection<ClusterNode> nodes = ignite.cluster().forServers().nodes();
// Set the baseline topology that is represented by these nodes.
ignite.cluster().setBaselineTopology(nodes);
return ignite;

缓存是这样创建的:

cacheConfiguration = new CacheConfiguration<>();
cacheConfiguration.setBackups(1);
cacheConfiguration.setAtomicityMode(CacheAtomicityMode.ATOMIC);
cacheConfiguration.setName("UserCache");
cacheConfiguration.setCacheMode(CacheMode.LOCAL);
cacheConfiguration.setReadFromBackup(true);
cacheConfiguration.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
cacheConfiguration.setIndexedTypes(String.class, User.class);
IgniteCache<String, User> cache = ignite.getOrCreateCache(cacheConfiguration);

在缓存中存储User对象是可行的。 Ignite 在 C:\ignite 下创建一个目录结构。但应用程序重新启动后,所有数据都会丢失。我怎样才能正确配置它?

最佳答案

看来根本原因是LOCAL缓存模式。尝试使用REPLICATEDPARTITIONED:https://apacheignite.readme.io/docs/cache-modes

关于java - 如何为 Apache Ignite 缓存配置持久存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51511892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com