设计电商秒杀系统
【背景】
【业务背景】
你作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:
1. 你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;
2. 本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone 12 作为秒杀商品;
3. 正常的日活大约 100 万用户; 4. 老板要求万无一失。
【技术背景】
1. 技术团队以 Java 为主,已经落地了微服务架构;
2. 主要渠道是自有的 App(包括 iOS 和 Android)和微信小程序,为了促进用户转化为 App 用户,只有下载 App 才能参加秒杀活动;
3. 目前只有单机房。
【毕设要求】
1. 设计完整的架构,例如存储、负载均衡、缓存、高可用、可扩展等;
2. 大约 10 页以内的 PPT,每页 PPT 说明一项设计,包括架构设计和设计理由,无需详细解释备选方案。
【提示】
1. 分析考虑要全面,但并不意味着架构设计要面面俱到,如果分析后认为某些设计点可以不做,就在作业最后统一说明原因即可;
2. 如果没有思路,请对照模块 9 的 IM 案例;
3. 如果有的信息觉得不够全或者不够细,可以做出一定的假设,但不能天马行空,需要对照已有的业务背景和技术背景进行合理推断
【业务基本场景】
1.用户可以随意浏览商品
2.用户只有 APP 登录才能下单秒杀商品
3.秒杀商品未开始不能秒杀
4.用户秒杀每个商品品类只能购买一个
5.秒杀成功,生成订单,库存扣减,等待支付
6.支付调用 第三方服务,
7.支付成功,变更订单状态
8.支付失败,支付超时,订单取消,库存恢复
【总体架构思路】
1.秒杀业务特点:瞬时流量,重复请求,购买数量限制
2.秒杀作为单独的微服务部署
3.前端 静态化,限流
4.后端 排队,缓存,熔断,限流
【存储性能预估】
【注册】
每日新注册用户不到 1 万,可以忽略
【登录】
百万用户登录信息
【商品】
目前 10 个品类 ,每个品类 20 个商品,商品 数量 200
【订单】
计算架构之负载均衡秒杀商品数量有限,订单写入数量,查看数量 忽略不计
【存储架构】
【计算性能预估】
【注册】
每日新注册用户不到 1 万,可以忽略
【登录】
百万用户登录信息
【浏览商品】
秒杀商品曝光率高,假设每个用户浏览 20 次,浏览 时间集中在 秒杀活动开始的
前 10 分钟和后 10 分钟,QPS 均值:100 万*20/20*60 ≈ 2 万/s
【秒杀下单】
秒杀商品数量有限,假设 有 30%客户参加秒杀,秒杀活动开始以后 30 秒内 购买完毕。
TPS 均值:100 万*0.3/30 ≈ 1 万/s
【计算架构之负载均衡】
【计算架构之缓存架构】
【可扩展架构】
【高可用架构】
版权声明: 本文为 InfoQ 作者【流火】的原创文章。
原文链接:【http://xie.infoq.cn/article/4549be0c221695fa3815e0559】。未经作者许可,禁止转载。
评论