jetcache icon indicating copy to clipboard operation
jetcache copied to clipboard

请教下各位大神,local cache 本地缓存有没有一致性的同步方案?

Open chcHOPE opened this issue 3 years ago • 6 comments

chcHOPE avatar Mar 08 '21 12:03 chcHOPE

可以试试借助MQ做这个事情,例如rabbitMq,缓存发生改变往交换机中发一个广播队列,应用节点监听交换机,不指定队列名,即可生成随机名字的队列,然后多节点都会收到通知,在进行消费需要刷新本地的缓存信息。

lucifertang avatar Mar 09 '21 03:03 lucifertang

如何监听到local cache的变更事件呢,我通过 CacheMessagePublisher监听现在有两个问题:1、无法确定是local cache 还是 remote cache? 2、put的时候无法获得cache的value,无法将value同步其他服务器节点?

chcHOPE avatar Mar 10 '21 05:03 chcHOPE

建议采用 redis 的 消息发布订阅模式,大部分 二级缓存用 caffeine cache 一级缓存用 redis,这时候引入 新的 mq 有些重量级,可以直接实现 redis 的消息订阅发布,完成更新; 好处: 更新缓存就会更新 一级缓存 redis,同时由 redis 发送 更新消息,其他的 获取消息后 更新 二级缓存即可,这样无需引入新的技术,即可实现 多实例的二级缓存的同步问题;

hegaoye avatar Apr 04 '21 08:04 hegaoye

如果 作者默认提供 这样的实现 将会更好,大部分人 一级是 redis,所以 这样可以覆盖大部分 的用户,作为默认实现可能会更加合适; 需要的小伙伴可以参考这个文章哦 https://blog.csdn.net/qq_27384769/article/details/112776462

hegaoye avatar Apr 04 '21 08:04 hegaoye

可以试试借助MQ做这个事情,例如rabbitMq,缓存发生改变往交换机中发一个广播队列,应用节点监听交换机,不指定队列名,即可生成随机名字的队列,然后多节点都会收到通知,在进行消费需要刷新本地的缓存信息。

其他MQ,怎么实现

wuchaofanQAQ avatar Apr 29 '21 03:04 wuchaofanQAQ

https://github.com/qy8502/jetcache-plus 我提供了一套解决方案,其中利用redis6的client tracking功能,同步失效本地缓存

JetCache Plus是对Alibaba JetCache的增强工具。用于提供自动同步失效本地缓存、AOP缓存注解支持多缓存集合处理、Dubbo服务先缓存调用再RPC调用的解决方案。

qy8502 avatar Aug 26 '21 02:08 qy8502