这是我参与「第五届青训营 」伴学笔记创作活动的第9天
本节课重点内容
- 系统设计方法论
- 电商秒杀业务介绍
- 课程实践
本节课详细内容
课前主要讲了课程中涉及到的中间件和背景知识。
- MYSQL
- Redis
- RocketMQ
- OpenResty
- Linux
- Java
- Jmeter
系统设计的概念是什么
-
系统设计的定义:为了达成某种目的,通过个体组成整体的过程
- 系统:关联的个体;规则运作;组成工作的整体
- 设计:设想和计划;目的;过程安排
如何做系统设计
-
场景分析
什么系统,需要哪些功能,多大的并发量
-
存储设计
数据如何组织,使用sql还是nosql
-
服务设计
业务功能如何实现
-
可扩展性
提高鲁棒性,可拓展性
发现系统瓶颈的方法
- 火焰图分析
- 链路追踪
- 性能测试
电商秒杀业务的介绍
特点: 瞬时流量高;读多写少;实时性要求高
挑战:资源成本;高性能;防止超卖;反欺诈;流量管控;鲁棒性(就是代码的错误预防能力);扩展性
如何设计一个秒杀系统?
场景
- 功能:活动发布、秒杀商品详情、秒杀下单
- 并发:参与人数多、QPS高
存储
- 多级缓存
- 分库分表
服务
- 子服务:用户服务、风控服务、活动服务、订单服务
- 基础组件:ID生成器、缓存组件、MQ组件、限流组件
拓展方向:
-
流量隔离
-
CDN
-
缓存优化
-
流量管控
-
数据库拓展
-
MQ拓展
-
Redis拓展
-
服务水平拓展
-
服务垂直拓展
服务中间根据GO语言的测试方法测出CPU占用率,进行数据结构优化
引用
「【实践课】手把手教你做系统设计」第五届字节跳动青训营 - 后端专场 (juejin.cn)
手把手教你做系统设计之秒杀系统 .pptx - 飞书云文档 (feishu.cn)