系统设计
1. 系统设计方法论
1.1 如何做系统设计》
-
场景
什么系统,需要哪些功能,多大并发量
-
存储设计
数据如何组织, SQL存储 or NoSQL存储
-
服务设计
业务功能实现和逻辑整合
-
可扩展性
解决设计缺陷,提高鲁棒性,扩展性
1.2 如何发现系统瓶颈?
- 火焰图分析
- 链路追踪
- 性能分析
1.3 如何保证可用性和稳定性?
2. 电商秒杀业务介绍
2.1 基本概念:
SPU : Standard Product Unit //商品分类
SKU : Stock Keeping Unit // 库存
秒杀业务特点:
- 瞬时流量高
- 读多写少
- 实时性要求高
2.2 如何设计秒杀系统:
2.2.1 场景
- 功能
- 秒杀活动发布
- 秒杀商品详情
- 秒杀下单
- 并发
- 万人参与秒杀
- QPS 1w+
- TPS1 1k+
2.2.2 存储
-
三层存储:
-
存储表格设计:
2.2.3 服务
- 子服务
- 用户服务
- 风控服务
- 活动服务
- 订单服务
- 基础组件
- ID 生成器
- 缓存组件
- MQ组件
- 限流组件
2.2.4 扩展
-
流量隔离
与常规商品流量隔离
-
CDN
内容分发网络,提高静态资源访问性能,离得越近,响应越快。
-
缓存优化
-
流量管控
-
数据库扩展
读写分离
-
服务水平扩展
负载均衡
-
MQ扩展、Redis 扩展
-
微服务垂直扩展
对服务再进一步拆分
2.2.5 系统架构图
3. 实践
3.1 秒杀流程
Coding…
图片均来自字节青训营课程,博客作为自己学习记录,如有侵权,麻烦联系删除。