Week9 作业:描述秒杀系统
设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
挑战和问题
技术
瞬间高并发
8000 并发:预估秒杀在线人数可达 8000
风险:带宽耗尽
服务器:崩溃,可以理解成自己给自己准备的 D.D.O.S 攻击
秒杀器
第一种:秒杀前不断刷新秒杀页面,直到秒杀开始,抢着下单。
第二种:跳过秒杀页面,直接进入下单页面,下单。
其它
服务器来不及时间采购
贷款不够
方案和思路
静态化
采用 JS 自动更新技术将动态页面转化为静态页面并发控制,防秒杀器
并发控制,防秒杀器
设置阀门,只放最前面的一部分人进入秒杀系统简化流程
秒杀 Detail
URL 随机
秒杀前 2s 放出,脚本生成
1000 次访问上限控制【每件商品只能放入 1000 人浏览】
下单页面
订单 ID,随机。
不能直接跳过秒杀 Detail 页面进入。
每个秒杀商品,带预先生成的随机 T oken 作 URL 参数。
如果秒杀过,直接跳到秒杀结束页面。
100 次访问上限控制【每件商品只能放入 1000 人下单】。
简化流程
砍掉不重要的分支流程,如下单页面的所有数据库查询
以下单成功作为秒杀成功标志。支付流程只要在 1 天内完成即可。
前端优化
采用 YSLOW 原则提升页面响应速度
组建升级,参数调整
图片合并
Html 内容压缩
应急方案准备
技术改进
服务器
前端
版本差异 Scripts
镜像 CDN
版权声明: 本文为 InfoQ 作者【evildracula】的原创文章。
原文链接:【http://xie.infoq.cn/article/8d93e86e1adbb7e81f687050d】。文章转载请联系作者。
评论