写点什么

毕业设计

作者:施正威
  • 2022 年 3 月 08 日
  • 本文字数:1185 字

    阅读完需:约 4 分钟

毕业设计

设计电商秒杀系统

【业务背景】

你作为一个电商创业公司的架构师,负责设计 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. 分级--独立部署

a) 热销商品:10 个品类*20 个商品=总参加商品数量 200 个

b) 秒杀商品

2. 正常日活 100 万,活动期间至少增长 2 倍

3. 用户数量

活动预热期间:每日新增 20 万用户,共 5 天增加 100 万。

当天参加活动的人数为:

正常日活 100 万*10% + 新增 100 万*20% = 30 万

活动当天日活人数为:

正常日活 100 万 + 新增 100 万*50% = 150 万

 

二、架构设计

a) 热销商品

QPS: 共 200 个商品。150 万人参加,每次查看 10 个商品,且 80%的请求发生在 5 小时内,则 QPS = 150W*10*0.8/5/3600 = 666

b) 秒杀商品

QPS:100 万人参加这个活动,每个人查看商品 3 次,秒杀请求发生在 1 分钟内。则 QPS = 100W*3/60=5000

TPS:最后 5 秒请求服务器,每人 2 次,则 TPS = 100W*2/5=40W

排队限流设计:提前下发令牌,减小秒杀时候后台压力


三、存储设计


 

a) Mysql 做主备就行了,保持用户数据+订单数据

b) 库存用 redis cluster,秒杀的时候 TPS 超过 redis 单机性能(5-10 万),所以使用 redis cluster。

 

四、负载设计

从人数来看,是初创企业用 F5 有点奢侈,用 LVS 就行了


 

五、缓存设计

使用三级缓存--客户端缓存+web 缓存+分布式缓存

a) 使用 CDN+客户端缓存+web 缓存把静态页面存起来

b) 客户端秒杀开始的前 2 天就可以在用户打开 APP 的时候,在后台下载到本地(提前预热)

c) 秒杀页面做成静态的也缓存起来

d) 热销商品和秒杀商品,使用 redis 保存库存,分布式缓存使用 redis,为应对大流量,redis 采用 redis cluster 方式部署。

六、高可用设计

老板要求万无一失,可以使用就近双机房(使用云就行了)。只要保存关键数据就行,只要保存用户数据和订单数据。

七、可扩展设计

12 个后台来开发这个项目,根据三个火枪手原则,分 4 个服务


用户头像

施正威

关注

还未添加个人签名 2021.01.04 加入

还未添加个人简介

评论

发布
暂无评论
毕业设计_施正威_InfoQ写作平台