思路:对于秒杀系统,两个架构优化思路:
1)尽量将请求拦截在系统上游
2)读多写少的常用多使用缓存
方法:
1、限制用户在x秒之内只能提交一次请求(前端按钮置灰)
2、同一个uid,或同一类查询(例如车次)。限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面
3、对于写请求,做请求队列,每次只透有限的写请求去数据层,如果均成功再放下一批,如果库存不够则队列里的写请求全部返回“已售完”。用redis,lua脚本扣库存,负数返回失败。
4、对于读请求,用缓存。
5、保证活动数据库和库存数据一致:分布式事务或消息队列。下单减库存/支付减库存。
6、消息队列削峰填谷。
7、资源静态化、用CDN动静分离。
8、应对恶意请求和爬虫:验证码、动态url。
9、动态扩容。
10、熔断限流降级机制文章来源:https://www.toymoban.com/news/detail-420114.html
文章来源地址https://www.toymoban.com/news/detail-420114.html
到了这里,关于秒杀系统如何设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!