【问题标题】:springboot + infinispan invalidation mode : How can used with shared cache storage?springboot + infinispan 失效模式:如何与共享缓存存储一起使用?
【发布时间】:2019-08-04 00:01:28
【问题描述】:

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

这个问题是关于 infinispan 的。 其实我看了官方文档:"In invalidation, the caches on different nodes do not actually share any data",现在我就是这种情况。

我使用a提供的方法: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】:

    除非您使用 ClusterLoader,否则 Spring 注释不会完全支持 INVALIDATION 模式。在底层注解使用put,我们可能会考虑在未来添加一个支持putForExternalRead 行为的功能,但它不会很快出现。 注释适用于 LOCAL、REPL 和 DIST 模式。

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

    如果您担心获得过时的值并且使用复制缓存时性能不够,您可以考虑使用分布式缓存。

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 2013-04-05
      • 1970-01-01
      • 2012-10-30
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2018-02-03
      相关资源
      最近更新 更多