我正在3个Ignite节点上使用Ignite群集。其中,正在运行的缓存将CacheAtomicityMode
设置为Atomic
,将CacheMode
设置为PARTITIONED
。
是否有可能丢失数据或使用其他密钥上存在的其他数据?
注意:数据加载发生在服务器端。带有多个对象的相同数据可能会同时加载到所有服务器上
缓存配置:
CacheConfiguration<String, JsonObject> cacheConfig = new CacheConfiguration<>();
cacheConfig.setName("CACHE");
cacheConfig.setCacheMode(CacheMode.PARTITIONED);
cacheConfig.setAtomicityMode(CacheAtomicityMode.ATOMIC );
cacheConfig.setReadThrough(true);
cacheConfig.setBackups(2);
cacheConfig.setCacheStoreFactory(FactoryBuilder.factoryOf(ObjectLoader.class));
cacheConfig.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_ASYNC);
IgniteCache<String, JsonObject> cache = ignite.getOrCreateCache(cacheConfig);
答案 0 :(得分:0)
如果两个节点在完成将数据复制到两个备份之前发生故障,则可能会丢失一些数据。您可以使用FULL_SYNC写同步模式来更改它。
(还要注意:如果要在所有节点上存储所有数据,则可以使用REPLICATED Cache Mode。)