秒杀系统设计
涉及到的细节
-
瞬时高并发
-
页面静态化
-
秒杀按钮
-
读多写少
-
缓存问题
-
库存问题
-
分布式锁
-
mq异步处理
-
如何限流
页面静态化
CDN 使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率
秒杀按钮
-
秒杀开始之前,js标志为false,还有另外一个随机参数
-
秒杀开始;系统会生成一个标志为true的新的js文件,随机参数生成一个新值,然后同步给CDN
-
前端加定时器,时间限制内不允许再次点击
读多写少
-
部署多个节点的 redis 缓存(保存库存等基础信息)
造成的问题
缓存击穿
大规模的key失效,而缓存击穿是一个热点的Key,有大并发集中对其进行访问,突然间这个Key失效了,导致大并发全部打在数据库上
解决方案
-
缓存预热(解决大量数据刚开始直接打到数据库的