多实例架构下如何批量驱逐本地内存缓存?
针对你提到的多实例本地内存缓存全局驱逐的场景,我来梳理下我们的架构选择和临时方案:
架构背景
- 我们采用横向扩展(scale-out)架构,多实例同时承接请求,每个实例都配置了本地内存缓存(in-memory cache)
- 核心诉求:需要能一次性触发所有实例执行缓存驱逐操作
为什么不选用Memcache/Redis等集中式缓存服务?
主要有两个关键原因:
- 远程调用Memcache/Redis会不可避免产生网络延迟,这会直接影响请求的处理性能,不符合我们对低延迟的要求
- 我们的业务数据量极小(最大仅100MB),完全可以轻松容纳在单个实例的内存中,引入远程缓存属于不必要的架构复杂度
临时解决方案
目前我们采用基于时间的缓存失效策略作为临时方案(后续会根据业务需求迭代更精准的全局驱逐方案)
内容的提问来源于stack exchange,提问作者Mohsin Mansoor
相关产品推荐
相关产品推荐

