我们有 infinispan 缓存和配置(CustomCacheMaxCount 是 100000):
new ConfigurationBuilder().clustering() .partitionHandling().mergePolicy(MergePolicy.REMOVE_ALL) .clustering() .cacheMode(CacheMode.INVALIDATION_SYNC) .statistics().enable() .memory() .maxCount(cacheSettingsHolder.getCustomCacheMaxCount()) .whenFull(EvictionStrategy.REMOVE)
在上次重新部署并进行一些更新后,我们注意到响应速度太慢。我们发现 infinispan 无法正常工作。
我们没有驱逐和集群分区。
但我们的失误多于命中
并且缓存大小正在变化。增长和减少,尽管它不应该减少,因为没有任何驱逐。而二级缓存工作得很好。
有什么想法可以找到此行为的原因并阻止此缓存丢失条目吗?
解决方案是使用
Cache#putForExternalRead
防止其他节点上的缓存在
Cache#put
之后失效