写点什么

设计电商秒杀系统

  • 2022 年 8 月 06 日
  • 本文字数:666 字

    阅读完需:约 2 分钟

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

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

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

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

4. 老板要求万无一失。

一、业务分析

1、正常的日活大约 100 万用户,推测参与秒杀用户为 500 万。

2、要求万无一失,系统要高可用。

3、主要涉及用户操作主要有用户登录,浏览商品,商品秒杀。

4、使用 mysql 存储,Redis 缓存。

5、20 个商品,10 个品类,一共 200。

二、存储架构设计

1、浏览商品,500 万用户浏览商品,一分钟平均 浏览 5 次,QPS 计算如下:500W*5/60= 410000。

2、商品秒杀,可以通过 APP 端进行过滤一波,假设只有 10%的请求真正被发送,TPS 计算如下:500W * 0.1 = 50W。

参与秒杀商品的品种只有 2 种,可以使用 mysql 主备数据库进行存储,但是对于 500W 用户浏览商品,需要提前将商品信息缓存到 Redis cluster。

三、计算架构设计

秒杀时的 QPS 和 TPS 分别为 41W 和 50W,商品浏览请求量较大,使用 DNS->F5->Nginx->网关的多级负载均衡。假设 CDN 能够承载 90%的用户流量,那么剩下 10%的商品浏览请求进入系统,则请求 QPS 为 41K/s* 10%=4.1K/s,假设单台业务服务器处理能力是 1000/s,则机器数量为 40 台,按照 20%的预留量,最终机器数量为 50 台。商品秒杀的 TPS 为 50W/s,要完成 50W/S 的 TPS,需要 500 台服务器,加上一定预留量,600 台服务器差不多。

四、高可用

由于商品秒杀是特殊的独立业务,可以采用业务定制型异地多活,同城双中心即可。


用户头像

还未添加个人签名 2021.05.30 加入

还未添加个人简介

评论

发布
暂无评论
设计电商秒杀系统_爱晒太阳的大白_InfoQ写作社区