第九周 性能优化(三)作业
1.设计一个秒杀系统,主要的挑战和问题有哪些?核心的架构方案或者思路有哪些?
挑战和问题
1.瞬时的高并发并可能引发以下几个问题:
带宽耗尽
服务器资源耗尽并崩溃
2.秒杀器
模拟客户端请求不断刷新秒杀页面导致页面并发请求更高
跳过秒杀页面和秒杀时间点直接进入秒杀下单页面进行下单
总的来说秒杀系统最大的挑战主要是高并发和破坏游戏规则两个问题
架构方案
1.静态化
将订单列表页面,订单详情页面提前生成静态页面并进行CDN缓存
动态生成JS脚本来判断该商品秒杀是否开始
2.并发控制,防秒杀器,设置阀门
限制进入秒杀页面的请求
限制进入下单页面请求
限制进入支付系统请求
3.简化业务流程
砍掉不重要分支流程,如下单页面的数据库查询
下单成功作为秒杀成功标志。支付流程可以延迟
4.前端优化
采用YSLOW原则提升页面响应速度
评论