springboot + infinispan失效模式:如何使用共享缓存存储?

问题描述 投票:2回答:1

我有一个使用infinispan的springboot项目在集群下运行缓存的失效模式。

这个任务是关于infinispan。事实上,我读了官方文件:"In invalidation, the caches on different nodes do not actually share any data",现在我处于这种情况。

我使用提供的方法:Cache.putForExternalRead(key, value),这个方法可以解决当我将数据放入节点A的缓存时,B节点使其无效的问题,但是我不能使用springboot注释,例如@Cacheable。

我还读到“无效模式可以与共享缓存存储一起使用”。从文档,但我不知道如何做到这一点,我希望你能提供一些帮助。

我希望实现的目标是在失效模式下,我将数据放入节点A的缓存中,节点B将接受来自A的复制数据。我可以使用失效模式吗?

我尝试使用无效模式打开CLusterLoader但是当节点从其他节点获取数据时存在获取旧值的风险。

我现在使用复制模式。但是,"replication practically only performs well in small clusters(under 10 nodes)""Asynchronous replication is not recommended"。所以我只能使用同步复制。

哪种性能对于失效和同步复制会更好?

期待您的帮助。谢谢

spring-boot infinispan
1个回答
2
投票

除非使用ClusterLoader,否则Spring注释不会完全支持INVALIDATION模式。在引擎盖注释使用put,我们可能会考虑添加一个功能来支持将来的putForExternalRead行为,但它不会很快就会存在。注释适用于LOCAL,REPL和DIST模式。

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
    .addClusterLoader()
    .remoteCallTimeout(500);

如果您害怕获取过时的值并且无法使用复制的缓存进行足够的性能,则可以考虑使用分布式缓存。

© www.soinside.com 2019 - 2024. All rights reserved.