写点什么

架构实战营模块九 - 毕业设计 - 电商秒杀系统

作者:Jude
  • 2022 年 3 月 18 日
  • 本文字数:702 字

    阅读完需:约 2 分钟

设计电商秒杀系统

【业务背景】

你作为一个电商创业公司的架构师,负责设计 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. 日活用户大约 100W,可以推断用户量为千万级别,TPS 最大可能在百万级别

  2. 老板要求万无一失,目前只有单机房,系统需要同城高可用。

  3. 10 个品类不超过 20 个商品,也就是 200 个商品。


秒杀业务流程设计:

  1. 需要考虑限流机制以确保突增流量击垮集群

  2. 需要考虑安全机制以过滤不必要的机器人流量等

  3. 订单提交需要有缓冲队列缓冲高峰并发流量

负载均衡设计:



缓存设计:

  1. 静态资源采用 HDFS+CDN

  2. 订单及用户其他信息采用 Redis 集群模式缓存

  3. 库存采用 Redis 主从模式缓存,做读写分离,读请求分发到从节点

  4. 计算节点本身采用内存式缓存以存储促销等重复访问信息,减少对 Redis 集群带宽的压力


存储设计:

  1. 基于高峰发的场景,建议采用分布式数据库

  2. 比较建议 CouchBase 或 AWS DynamoDB 或 Redis Cluster + MQ + Mysql 集群


关键设计-双队列缓冲:

  1. 采用分布式队列 NSQ

  2. 双队列缓冲确保不会被流量击垮

整体架构设计:


用户头像

Jude

关注

还未添加个人签名 2018.10.20 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块九-毕业设计-电商秒杀系统_架构实战营_Jude_InfoQ写作平台