cache.putIfAbsent(key, value);
cache.get(key).method();给定的代码在第二行产生NPE。下面是我如何创建缓存:
ClientCacheConfiguration cacheConfig = new ClientCacheConfiguration().setCacheMode(CacheMode.REPLICATED) .setName("POSITION");
cache = igniteClient.getOrCreateCache(cacheConfig);发布于 2022-04-11 22:23:22
put(1, "foo"); get(1)返回null的一些边缘情况是可能的。这是令人困惑的,我知道-分布式系统经常是。
根本问题总是缓存设置。点燃历史上有几个默认设置,它们倾向于性能而不是一致性:
当备份节点尚未更新时,
CacheConfiguration.writeSynchronizationMode=PRIMARY_SYNC返回到客户端控件,yet.CacheConfiuration.readFromBackup=true允许从备份中读取--这可能由于PRIMARY_SYNC.而滞后。
虽然这两个选项都有它们完全有效的用例,但您可能希望设置writeSynchronizationMode=FULL_SYNC和readFromBackup=false,以增强一致性并避免混乱。
https://stackoverflow.com/questions/70906215
复制相似问题