我正在尝试为ApacheIgnite配置持久存储,这样我的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
. 但重新启动应用程序时,所有数据都会丢失。如何正确配置?