写点什么

架构实战营四期 - 毕业设计

作者:木几丶
  • 2022 年 3 月 27 日
  • 本文字数:1016 字

    阅读完需:约 3 分钟

1、作业要求

【业务背景】

你作为一个电商创业公司的架构师,负责设计 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. 如果有的信息觉得不够全或者不够细,可以做出一定的假设,但不能天马行空,需要对照已有的业务背景和技术背景进行合理推断。

2、业务基本场景


3、总体架构思路

3.1 总体复杂度

质量复杂度较高,业务复杂度不高,需要更关注高性能和高可用,尤其是抢购场景

3.2 计算性能预估

计算性能预估:正常日活 100 万用户,预估 100%用户参加秒杀,所以架构设计应该按百万级别来设计

  • 商品浏览:假设 80%的用户浏览商品集中在 2 小时,没人平均浏览 20 次商品,所以总浏览量为 100w*0.8*20=1600w;平均 QPS 约为 1600w / (2*3600) = 2500,再假设活动前 QPS 是平均 QPS 的 10 倍,则最高 QPS 位 2.5w

  • 下单:假设有 60%的用户走到了实际秒杀逻辑(前端可剔除一部分),5 分钟商品被秒杀完,则平均 TPS 为:(100w * 80% * 60% )/ (5 * 60) ≈ 2000,最高 TPS 是平均 TPS 的 10 倍,即最高 2w TPS

  • 支付/扣库存:这两个操作属于同一条处理链,可一起考虑。假设用户秒杀成功后 100%会支付,一共 1100 件商品,所以最终秒杀成功支付的共 1100 条请求,假设 5 分钟内秒杀完毕,则平均 TPS 为 1100 / (5 * 60) ≈ 3.6,最高 TPS 假设为平均 TPS 的 10 备,即最高 TPS 为 36


3.3 存储量预估

  • 登录用户为 100 万,即存储 100 万用户数据

  • 秒杀商品:2 条数据(充电宝和 iPhone)

  • 订单数据:假设有一半参与秒杀的用户产生了订单,则每个商品产生 50 万条数据,共 100 万条数据

因此,整体存储量很低

4、存储架构设计


5、计算架构设计

5.1 负载均衡设计


5.2 缓存设计


6、微服务拆分


7、高可用设计



用户头像

木几丶

关注

还未添加个人签名 2021.01.20 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营四期-毕业设计_「架构实战营」_木几丶_InfoQ写作平台