这是我参与「第五届青训营」笔记创作活动的第10天
一. 重点内容
-
系统设计方法论
-
电商秒杀业务介绍
二. 知识点介绍
1. 系统设计方法论
- 定义:为了达成某种目的,通过个体组成整体的过程
-
- 系统:关联的个体;规则运作;组成工作的整体
-
- 设计:设想和计划;目的;过程安排
- 流程:场景 -> 存储 -> 服务 -> 扩展
-
- 场景分析: 系统?功能?并发量?
-
- 存储设计:组织数据?SQL存储?NoSQL存储
-
- 服务设计:业务功能实现和逻辑整合
-
- 可扩展性:解决设计缺陷,提高鲁棒性、扩展性
- 发现系统的瓶颈:火焰图分析;链路追踪;性能测试
- 保证可用性和稳定性:
-
- 链路梳理:核心链路;流量漏斗;强弱依赖
-
- 可观测性:链路追踪;核心监控;业务报警
-
- 全链路测试:压力测试;负载测试;容量测试
-
- 稳定性控制:系统限流;业务兜底;熔断降级
-
- 容灾演练:混沌工程;应急手册;容灾预案
2. 电商秒杀业务介绍
- 电商介绍:
-
- 商品:具有交易价值和属性的信息载体
-
- SPU: Standard Product Unit
-
- SKU: Stock Keeping Unit
- 秒杀业务:
-
- 特点:瞬时流量高;读多写少;实时性要求高
-
- 挑战:资源成本;高性能;鲁棒性;流量管控;防止超卖
-
- 场景:
-
-
- 功能:秒杀活动发布;秒杀商品详情;秒杀下单
-
-
-
- 并发:万人参与秒杀;QPS 1w+;TPS 1k+
-
-
- 存储:MySQL -> Redis(分布式缓存) -> Localcache(效率高)
-
- 服务:
-
-
- 子服务:用户服务;风控服务;活动服务;订单服务
-
-
-
- 基础组件:ID生成器;缓存组件;MQ组件;限流组件
-
-
- 扩展:流量隔离;CDN;缓存优化;流量管控
- 系统架构图:
- 秒杀流程图: