秒杀系统如何设计

思路:对于秒杀系统,两个架构优化思路:
1)尽量将请求拦截在系统上游
2)读多写少的常用多使用缓存

方法:
1、限制用户在x秒之内只能提交一次请求(前端按钮置灰)
2、同一个uid,或同一类查询(例如车次)。限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面
3、对于写请求,做请求队列,每次只透有限的写请求去数据层,如果均成功再放下一批,如果库存不够则队列里的写请求全部返回“已售完”。用redis,lua脚本扣库存,负数返回失败。
4、对于读请求,用缓存。
5、保证活动数据库和库存数据一致:分布式事务或消息队列。下单减库存/支付减库存。
6、消息队列削峰填谷。
7、资源静态化、用CDN动静分离。
8、应对恶意请求和爬虫:验证码、动态url。
9、动态扩容。
10、熔断限流降级机制

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值