写点什么

架构实战营 毕业设计

用户头像
👈
关注
发布于: 2 小时前

设计电商秒杀系统


【业务背景】你作为一个电商创业公司的架构师,负责设计 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. 如果有的信息觉得不够全或者不够细,可以做出一定的假设,但不能天马行空,需要对照已有的业务背景和技术背景进行合理推断。


一、技术背景

  • 10 个品类,每个品类最多 20 个商品

  • 1000 个充电宝、10 台 Iphone12 参与秒杀

  • 平台日活用户 100 万

  • 渠道为自有 App 和微信小程序,需要将用户从微信小程序导流到自有 App 后才能参与秒杀。

  • 硬件限制:单机房


二、存储设计

1.架构设计:使用 Mysql 一主多从架构,一台负责处理读写请求,两台从库负责处理读请求。

2.设计理由:

  • 日活用户为 100 万,从存储性能看,一台 Mysql 服务器即可胜任。

  • 考虑到秒杀当天可能存在大量并发读请求,添加两台从数据库分担压力。


三、缓存

1.架构设计:使用 Redis 集群架构设计,一台负责处理读写缓存、两台从库负责处理读缓存,配置两个哨兵。

2.设计理由:

  • 考虑到极端情况下,可能有 100 万用户同时注册登陆,为防止缓存击穿导致数据库压力大增,使用多台 redis 分流。

  • 提前把所有商品信息缓存至 Redis,可快速响应读请求、减少数据库压力。

  • 当请求超过服务器承受阈值时,可能充当熔断角色。


四、负载均衡

1.架构设计:使用 nginx 服务集群,配置两到三台 Nginx 服务器

  • 主要为了对用户注册、登陆、下单、查看详情页请求进行分流,避免超过服务器处理阈值。


五、高可用及可扩展

1.架构设计:服务器集群、数据库主从架构、Redis 哨兵机制

2.设计理由:集群 + 哨兵,保证服务高可用及可扩展。

用户头像

👈

关注

还未添加个人签名 2019.04.04 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 毕业设计