是否可以使用Infinispan作为阻塞缓存?

时间:2016-11-22 18:36:07

标签: java spring caching infinispan spring-cache

在我们的项目中,我们使用Infinispan和Spring的@Cacheable注释,主要用于缓存I / O结果。

由于我们有许多并发调用,我们希望避免两个线程执行两次相同的数据检索,因此第二个@Cacheable方法调用(具有相同的缓存键)被阻塞,直到第一个完成并返回结果。

我已经习惯了Ehcache SelfPopulatingCache自动支持此功能,但Infinispan中是否有类似功能?

理想情况下,这应该通过Spring @Cacheable使用,以便我们避免使用样板代码。我注意到Spring 4.3现在有@Cacheable.sync()但是它表明它只是一个提示,它取决于底层的缓存提供程序实现。另外,我们还没有使用Spring 4.3,所以4.2的解决方案会更好。

1 个答案:

答案 0 :(得分:2)

如果您希望该功能开箱即用,则必须升级到4.3。如果你使用4.2,升级到4.3应该是无痛的(如果不是这样,请告诉我们!)

正如Ben已经提到的,您可以使用明确支持此类调用的JCache桥(即它适用于任何符合JSR-107的缓存库)。 Infinispan还没有这样的原生功能,我只是submitted a feature request in their tracker