写点什么

设计电商秒杀系统

作者:小虾米
  • 2022 年 6 月 28 日
  • 本文字数:808 字

    阅读完需:约 3 分钟

【业务背景】

你作为一个电商创业公司的架构师,负责设计 6.18 大促秒杀系统的设计,你们的业务模式如下:

1. 你们挑选选品各大电商平台上畅销和好评的商品进行销售,每个品类不超过 20 个商品,目前做了 10 个品类;

2. 本次 6.18 秒杀选择了 1000 个充电宝,10 台 iPhone12 作为秒杀商品;

3. 正常的日活大约 100 万用户;

4. 老板要求万无一失。

【技术背景】

1. 技术团队以 Java 为主,已经落地了微服务架构;

2. 主要渠道是自有的 App(包括 iOS 和 Android)和微信小程序,为了促进用户转化为 App 用户,只有下载 App 才能参加秒杀活动;

3. 目前只有单机房。

【毕设要求】

1. 设计完整的架构,例如存储、负载均衡、缓存、高可用、可扩展等;

2. 大约 10 页以内的 PPT,每页 PPT 说明一项设计,包括架构设计和设计理由,无需详细解释备选方案。

【提示】

1. 分析考虑要全面,但并不意味着架构设计要面面俱到,如果分析后认为某些设计点可以不做,就在作业最后统一说明原因即可;

2. 如果没有思路,请对照模块 9 的 IM 案例;

3. 如果有的信息觉得不够全或者不够细,可以做出一定的假设,但不能天马行空,需要对照已有的业务背景和技术背景进行合理推断。


一、业务基本场景



用户规模存储性能估算:

【注册】

假设日活用户是注册用户的 1/10, 需要保存千万用户注册信息

【登录】

日活是百万,登录时读取用户信息是每天 100 万次

【浏览】

假设秒杀时有 80%的日活用户在线,并且每秒刷新一次商品页面,商品浏览 qps 为 80 万

【下单】

假设经过客户端、网关、业务服务器、缓存层层过滤,最后到达存储服务的流量只有接近于商品实际数量的请求数,只需要 1010qps

【支付】

支付的数量等于商品的总数量,等于 1010 条记录


存储架构设计

近千万用户注册信息,100 万登录请求,2000 条商品信息


redis 采用集群分片架构,秒杀场景下每秒集群需要承担请求 80 万次,每台需要承担 4w qps


负载均衡设计


采用多层级负载均衡,最大程度的分摊负载以及保证可用性


缓存设计


高可用架构设计


可扩展架构设计

拆分成多个微服务,方便日后继续扩展功能

用户头像

小虾米

关注

还未添加个人签名 2017.10.18 加入

还未添加个人简介

评论

发布
暂无评论
设计电商秒杀系统_「架构实战营」_小虾米_InfoQ写作社区