写点什么

【架构实战营】模块九作业

作者:liu🍊
  • 2022 年 1 月 16 日
  • 本文字数:1031 字

    阅读完需:约 3 分钟

设计电商秒杀系统

【业务背景】

你作为一个电商创业公司的架构师,负责设计 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. 业务基本场景

(1) 需要在 app 登录才能参与秒杀活动

(2)通过首页秒杀活动进入商品详情页面浏览商品信息

(3)秒杀开始的时候才能对这个商品进行购买,在没有开始之前是不能购买的(购买按钮隐藏或置灰)

(4)每个用户只能秒杀一件商品

(5)秒杀商品一般是定时上架;秒杀过程时间短、瞬时并发量高

(6)秒杀过程中需要及时更新库存,不能出现“超卖”的情况


  1. 存储架构设计

存储性能估算

【注册登录】

日活 100 万用户,假设秒杀活动营销成效正常,预估有 300 万用户登陆参与,即有 300 万用户登录数据。

【浏览商品】

电商平台目前有 10 个品类,每个品类不超过 20 个商品,共计 200 种商品信息,秒杀商品 2 种。

【秒杀】

秒杀商品是 1000 个充电宝、10 台 iPhone 12,秒杀有效订单就是 1010。

【订单】

假设每天,每十个活跃用户下单 1 单,那么日订单数量=100W*10%=10 万单。


存储架构设计

  1. 计算架构设计

计算性能估算

【注册登录】

活动当日预估有 300 万用户登录,假设登录的时间集中在秒杀前 2 小时,则注册登录 TPS = 300W/(2*60*60)= 417

【浏览商品】

对于非秒杀商品,日活 100 万用户,假设每人浏览 30 个商品,80%的人集中在早中晚 4 小时,则浏览商品的 QPS =100W*30*80%/(4*3600)=1667

对于秒杀商品,假设 50%的用户在秒杀前 1 个小时第一次查询商品信息,则浏览秒杀商品信息的 QPS=300W*50%/(60*60)=417

【秒杀】

假设商品数量在 10S 内秒杀完,300 万的用户 10 秒内每个用户平均请求 2 次,则秒杀请求 TPS = 300 W *2/10 = 600000/S

【订单】

假设这些订单都是在 5S 内生成,则生成秒杀订单 TPS = 1010/5 = 202

假设日订单数是 10W 条,当天用户平均查询订单 2 次,查询订单请求量是 20W;假设查询时间集中在早中晚 2 小时内,则查询订单 QPS =20W/(2*60*60)= 27


计算架构之负载均衡

计算架构之缓存架构

计算架构之高可用

  1. 其他架构设计

可扩展架构设计-微服务拆分

高可用架构设计-同城灾备


用户头像

liu🍊

关注

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
【架构实战营】模块九作业