Spring 缓存:远程逐出条目

Spring Caching: evict entry remotely

我有 2 个微服务 reading/writing 同一个数据库。在其中之一中,我缓存了某些实体的 REST 端点的结果。我还有 @CachePut@CacheEvict 来控制实体生命周期。

现在,第二个微服务出现了:它也可以修改第一个返回的实体。

我的问题是:在这种情况下是否有任何机制可以用于远程缓存条目逐出?当然,我可以通过在第一个微服务中公开 "reset" 端点并从第二个微服务调用它来手动完成。但我希望有一些内置机制,也许在 Spring Cloud 中。

我相信缓存复制解决方案是一个不错的选择。 service 1 在其缓存中所做的任何更改都将被复制到 service 2 的缓存中,反之亦然,超过 TCP/UDP - 取决于您的配置。

有多个缓存提供程序(例如 EHCache)开箱即用。


我的配置如下所示:

...<br> <!-- 设置缓存对等提供者工厂 --> <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory" propertySeparator="," properties="replicateAsynchronously=true,replicatePuts=true,replicateUpdates=true,replicateUpdatesViaCopy=false,replicateRemovals=true"/><br> <!-- 设置缓存对等监听器工厂 --> <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/><br> ...


查看 this (EHCache replication) - 可能会有帮助。