东东
发布于 2025-03-10 / 2 阅读 / 0 评论 / 0 点赞

分布式环境本地缓存更新方式

分布式环境下本地缓存如何及时更新

当一个服务同时部署了多个节点,这样每个节点上都有一份本地缓存的数据

这个时候,如果某个接口发起调用,修改了数据库的数据,如何快速通知到所有节点,让服务修改自己的本地缓存

MQ消息的方式

当数据发生变更的时候,往MQ发一条消息,然后所有节点订阅这一消息,收到消息后更新本地缓存

Redis消息的方式

Redis本身也有消息发布-订阅的模式,可以利用这个机制来进行更新

自己利用Redis写一个简易的注册中心

原理大概是:

0、首先服务内部要写一个更新本地缓存的统一接口

1、每个服务定义一个key,当服务上线后主动向Redis的这个key放入自己的IP

2、服务下线时主动清理Redis中自己的IP

3、当某个接口发生数据变更后,通过获取注册中心里这个服务所有的节点IP, 然后调用相应的接口更新

利用binlog

如果使用的是mysql,那么就可以通过监听binlog,如果发生本地缓存的数据发生变更,就可以主动的调用接口进行更新