写点什么

Week9 作业:描述秒杀系统

用户头像
evildracula
关注
发布于: 2020 年 12 月 21 日

设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?

挑战和问题

技术

  • 瞬间高并发

  • 8000 并发:预估秒杀在线人数可达 8000

  • 风险:带宽耗尽

  • 服务器:崩溃,可以理解成自己给自己准备的 D.D.O.S 攻击

  • 秒杀器

  • 第一种:秒杀前不断刷新秒杀页面,直到秒杀开始,抢着下单。

  • 第二种:跳过秒杀页面,直接进入下单页面,下单。

其它

  • 服务器来不及时间采购

  • 贷款不够


方案和思路

静态化

  • 采用 JS 自动更新技术将动态页面转化为静态页面并发控制,防秒杀器


并发控制,防秒杀器

  • 设置阀门,只放最前面的一部分人进入秒杀系统简化流程

  • 秒杀 Detail

  • URL 随机

  • 秒杀前 2s 放出,脚本生成

  • 1000 次访问上限控制【每件商品只能放入 1000 人浏览】

  • 下单页面

  • 订单 ID,随机。

  • 不能直接跳过秒杀 Detail 页面进入。

  • 每个秒杀商品,带预先生成的随机 T oken 作 URL 参数。

  • 如果秒杀过,直接跳到秒杀结束页面。

  • 100 次访问上限控制【每件商品只能放入 1000 人下单】。

简化流程

  • 砍掉不重要的分支流程,如下单页面的所有数据库查询

  • 以下单成功作为秒杀成功标志。支付流程只要在 1 天内完成即可。

前端优化

  • 采用 YSLOW 原则提升页面响应速度

  • 组建升级,参数调整

  • 图片合并

  • Html 内容压缩


应急方案准备


技术改进

服务器

前端

版本差异 Scripts


镜像 CDN



发布于: 2020 年 12 月 21 日阅读数: 34
用户头像

evildracula

关注

还未添加个人签名 2019.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Week9 作业:描述秒杀系统