秒杀

设计秒杀架构时,我们一般需要遵循

东西不能超卖、

下单成功的订单数据不能丢失、

服务器和数据库不能挂、

尽量别让机器人抢走商品

 

大流量要注意,出口带宽

PC 网站,首先必须前后端分离,然后静态资源能上 CDN 就上 CDN

动态的请求静态化, 秒杀商品的详情页面变成静态页面,然后再放入 CDN

用户请求尽量拦截在 CDN、静态资源或负载均衡侧,实在不行可以拦截在缓存中

 

进入下单页

防止(恶意)请求重复提交,

页面 URL 后台动态获取

用户点击下单页的购买按钮直接 disable

订单提交

限定每个用户访问频率:比如每 5 秒下单 1 次。

限定每个 IP 访问频率

把一个时间段内的请求拦截掉一个百分比,或者只允许特定数量的请求进入后台服务器。(这里我们可以使用限流的漏桶或令牌桶算法

 

商品库存放入缓存 Redis 中

订单写入缓存中

订单批量落库

 

posted @ 2023-03-09 14:09  jiaozg  阅读(12)  评论(0)    收藏  举报