缓存 - 京东快递柜缓存架构的问题
Posted 王万林 Ben
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存 - 京东快递柜缓存架构的问题相关的知识,希望对你有一定的参考价值。
京东快递柜缓存架构的问题
问题描述
取快递时,意外发现京东快递柜系统存在“缓存穿透”攻击的问题,在京东快递柜输入一个丰巢取件ID能将系统卡30s以上,再次输入耗时同样。(先声明我的是京东快递,只不过快递小哥将我的快递放到了蜂巢。我一开始就默认以为在京东快递柜了,于是发现了这个问题。)
架构分析
与曾经负责过蜂巢快递柜的同学聊了一会:蜂巢快递柜的取件密码由快递柜生成并缓存在本地,并异步上传至服务器,并触发收件信息,如短信或微信公众号信息。
而本次遇到的京东快递柜,连续输入两次不存在的取件ID,耗时30s+。因此分析京东快递柜本地是没有无效条目的缓存,服务器端我估计是有有效数据的缓存的,但同样没有无效条目的缓存,因此两次30s+得的结论是:缓存穿透了。
总结
在设计大型分布式应用时,缓存是一项很重要的功能,用得好能事半功倍,用的不好很容易受到攻击白耗资源。
以上是关于缓存 - 京东快递柜缓存架构的问题的主要内容,如果未能解决你的问题,请参考以下文章
京东技术:Flutter图片缓存 | Image.network源码分析