- 秒杀系统特点
- 时间短,访问量大
- 读多写少
- 难点
- 防止超卖
- 保障系统不崩
- 防止缓存雪崩,缓存击穿,缓存穿透
- 拦截恶意请求
- 防止链接暴露
- 保障数据库稳定不挂
- 优化方法
- url动态加密
- 请求的url加上动态加密串,到了服务端解密,判断是否是合法请求,不合法的直接pass,增加作弊成本
- 前端资源静态化
- 将前端资源放到cdn上,只有动态接口才到服务端
- 前端拦截
- 用户点了按钮后,按钮灰掉,等过几秒才能再点。通过这个方法,已能拦截80%的流量
- 后端拦截
- 同一个uid,限制访问频率,x秒内的请求,都返回缓存数据。防止通过代码调用接口伪造请求
- 削峰填谷
- 使用消息中间件,将请求先扔到消息里去,再慢慢处理
- redia缓存
- 经过上面过滤后,流量已经少了很多,这个时候再来的请求,只要到redia里使用分布式锁扣库存,扣除成功的再到数据库里执行写操作
- url动态加密
- 参考文档
秒杀系统设计
最新推荐文章于 2022-11-16 10:12:46 发布