Spring 4,共享缓存beetwen节点

use*_*733 5 java spring caching spring-boot

我们在两个节点上有Spring启动应用程序.现在我们想要每隔5秒在缓存中保留一些数据而不是呼叫外部服务.问题是如何在两个节点之间共享缓存?可能吗 ?或者也许每个节点创建两个单独的缓存?哪种方法更好?我认为维护共享缓存非常困难.谢谢你的任何提示

cru*_*tex 8

我会选择你的术语"共享缓存",它代表集群或分布式缓存产品,例如Infinispan,hazelcast或Apache Ignite.

您可能需要共享缓存,原因如下:

一致性:如果应用程序在一个节点中更新缓存,则共享缓存会关注更新的传播,并确保每个节点在更新完成后都会看到新值.这是共享缓存可以提供给您的东西,但不一定是任何"共享缓存"产品都可以.

Times 10问题:当您添加更多节点时,共享缓存将限制对外部服务的请求,否则,每个节点可能会请求相同的值.

大数据:这适用于分布式缓存:您可以缓存更多数据,然后在一个系统中有空间.

但是,您会以额外的配置和部署复杂性为代价获得此优势.此外,共享缓存的访问延迟通常远高于本地缓存.为了进行比较,请查看这些基准.

总结:你现在有两个节点.如果您没有协调更新或失效的问题,请使用简单的本地缓存.如果你想成为未来证明并有空闲时间来修改共享缓存,那就去吧:)