写点什么

架构实战营 毕业设计

作者:唐敏
  • 2022 年 1 月 16 日
  • 本文字数:1611 字

    阅读完需:约 5 分钟

设计电商秒杀系统

业务背景

你作为一个电商创业公司的架构师, 负责设计 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) 分析考虑要全面, 但并不意味着架构设计要面面俱到, 如果分析后认为某些设计点可以不做, 就在作业最后统一说明原因即可

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

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


毕业总结

架构实战营复杂性系统的拆解和组建为基础,讲述了软件架构的发展历程和当前最新技术。正巧几年前,看过一本《失控》的图书,讲述了如何创造和维护复杂系统。今年诺贝尔物理学奖也颁发给了复杂科学。得到也推出了复杂科学相关课程。

很多时候,我们学到的科学知识是有明确的预期,比如线程方程。现实生活中,很多事情被很多因素或多或少影响着,本不是一个线性规律。学好每个组件的功能、用途、场景,才能在以后的架构设计与研发中,灵活应用,以最合适的成本,创造最优秀的收益。

知识点总结如下

如何提升架构设计能力,了解架构,学会画架构图,复杂度设计

架构设计的关键点,可扩展,高性能,高可用,质量

架构设计的前期、中期、后期,消息队列备选架构实战

高性能高可用存储架构,数据存储,复制,分片,分区

高性能高可用计算架构,多级缓存,负载均衡,接口高可用

微服务架构陷阱与挑战,基础设选型,拆分技巧,中台

异地多活的三种模式

高性能高可用中间件系统,Zookeeper,复制,集群,分片,消息队列

架构流程实战

架构师成长建议


项目分析

1) 日活 100 万用户, 及时考虑秒杀活动有新用户参加, 应该不会超过 300 万, 考虑到充电宝和 iPhone 手机, 在市场也能买到, 预估参与用户 300 万

2) 秒杀有 10 个品类, 每个品类不超过 20 个商品, 这个对秒杀商品可扩展性提出了一些基本要求, 秒杀页面不能完全使用一个固定的 HTML 页面, 可以考虑为每个商品独立设计一个或多个页面, 品类对秒杀活动影响不大

3) 本次 秒杀 1000 个充电宝 和 10 个 iPhone 手机, 秒杀成功用户 使用 Redis 存储即可

4) 老板要求万无一失, 在一个机房要求万无一失, 一般是接入多条专线. 当单一主干网络掉线后, 其余主干网可以及时响应. 一般 2-3 条主干网专线即可. 现在有个机房托管支持多个主干网运营商, 或者单一主干网运营商多条线路. 在服务器层面, 每个服务器配置多个网卡, 当机房内交换机, 出现故障时, 可以使用备用交换机.


接入网络高可用设计

接入主干网才有多条专线, 机房路由器、机房交换机至少有两组, 每组同时接入不同专线。

服务器接入不同交换机。



存储高可用设计

Redis 使用 sentinel 机制, MySQL 使用主从复制, 秒杀商品同时写入 Redis 和 MySQL.


整体架构



CDN

将秒杀页面缓存到 CDN, 用户直接下载 HTML


负载均衡

秒杀系统, 通过负载均衡对外提供服务, 解决单点问题


缓存

秒杀页面动态信息和秒杀结果直接缓存在 Redis 中

如果页面访问过多, 可以直接缓存在秒杀服务中, 定期从 Redis 更新


存储

使用消息中间件存放所有秒杀请求, 例如把请求信息存放到 Kafka 中

秒杀服务异步从消息中间件获取秒杀信息, 判断用户是否秒杀成功. 秒杀成功用户同时存放在 Redis 和 MySQL 中, 直到秒杀名额填满


扩展

扩展新商品秒杀时, 将新的秒杀页面推送到 CDN. 在 MySQL 中和 Redis 提前预热秒杀相关数据

用户头像

唐敏

关注

还未添加个人签名 2020.12.07 加入

还未添加个人简介

评论

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