缓存外部系统接口返回信息的方案

本文探讨了通过缓存策略提升系统响应速度的方法,包括两种主要方案:一是使用定时任务更新缓存以保持其新鲜;二是为缓存设置失效时间,在数据过期时直接穿透到后端系统获取最新数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述


在一个大的系统当中,通常会切分成多个子系统,子系统与子系统之间可以通过微服务、http接口或者mq等来相互通讯。假设有这样一种场景,A系统需要调用B系统的f1 接口,获取数据后再向前端系统输出。
前端系统通常所承受的并发量是非常大的,也就是说A系统的接口需要有很高的qps。

这个时候我们需要缓存B系统接口的输出,以便提高A系统接口的响应速度。

方案一 让缓存保持新鲜


我们可以把B系统接口返回的数据存储到本地缓存(根据数据量的大小可以选择堆外或者堆内的)或者中央缓存。为了缓存数据不生效,可以使用一个定时任务去定时的调用B系统的接口,把返回的数据刷新到缓存中,让缓存保持新鲜 。这样来自前端的请求,便可直接在缓存命中,如果不命中则直接返回空,告知对方无此数据。

方案二 设置数据的缓存失效时间


另一种方案是,直接设置数据在缓存的失效时间,一旦数据过期,则直接把请求穿透到B系统,B系统返回数据后,再把数据放入到缓存中。

这种做法就无需使用定时任务去刷新缓存。不过有个缺点是,缓存失效,需要把请求穿透到B系统。

总结


无论使用哪种方案,最好能做到缓存预热,这样在系统刚启动的时候,由于缓存中有数据,不会对系统造成太大压力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值