秒杀设计
2022-04-17 10:08:54 3 举报
用于整体秒杀设计
作者其他创作
大纲/内容
判断是否已经秒杀过
失败
是
未过期
提交后按钮置灰
否
异步:将数据存放到线程变量
检查时间
库存0
成功
添加到redis
rocket
轮询/获取redis结果
点击秒杀
1. 使用 try-catch:2. 添加redis分布式锁<用户id,uuid>
lua脚本:判断库存 & 库存减一,进行原子操作。
页面静态化
1. finally块中执行2. 编写lua脚本判断锁的key/value,一致才可解锁 防止误解
cdn缓存
执行结束
检查库存
秒杀结束
是否过期
库存减一
执行结果
开启定时线程
接口限流(分钟/2次)
生成订单消息发送到队列(顺序发送)
续期时间
提交输入验证码
decr方法
前端限流
尽量减少动态元素
1.修改库存 2.新增订单
redis缓存
无异常/返回成功派对中
将要过期
用户登录
顺序写入异步队列
0 条评论
下一页