这是我参与「第五届青训营」伴学笔记创作活动的第 10 天
今日内容
学习完了青训营课程 手把手教你做系统设计 之后的一些总结。
课程内容
- 系统设计方法论
- 电商秒杀业务介绍
- 课程实践
- 课程总结
1. 系统设计方法论
- 系统设计的一些问题
- 为什么要做系统设计
- 系统设计的定义是什么
- 怎么做系统设计,如何落地一个系统
- 系统功能实现之后,如何分析瓶颈并优化
- 如何验证系统的可用性和稳定性
- 系统设计的定义:为了达成某种目的,通过个体组成整体的过程
- 系统:关联的个体;规则运作;组成工作的整体
- 设计:设想和计划;目的;过程安排
- 如何做系统设计
- 场景分析
- 存储设计
- 服务设计
- 可扩展性
- 发现系统瓶颈的方法
- 火焰图分析
- 链路追踪
- 性能测试
- 如何保证可用性和稳定性
- 链路梳理:核心链路;流量漏斗;强弱依赖
- 可观测性:链路追踪;核心监控;业务报警
- 全链路测试:压力测试;负载测试;容量测试
- 稳定性控制:系统限流;业务兜底;熔断降级
- 容灾演练:混沌工程;应急手册;容灾预案
2. 电商秒杀业务介绍
秒杀业务的特点:瞬时流量高;读多写少;实时性要求高
秒杀业务的挑战:资源成本;高性能;防止超卖;反欺诈;流量管控;鲁棒性;扩展性
- 如何设计秒杀系统:
- 场景
- 功能:秒杀活动发布;秒杀商品详情;秒杀下单
- 并发:万人参与秒杀;QPS 1W+;TPS 1K+
- 存储
- Mysql -> Redis -> Localcache
- 服务
- 子服务:用户;风控;活动;订单
- 基础组件:ID 生成器;缓存组件;MQ 组件;限流组件
- 扩展
- 流量隔离;CDN;缓存优化;流量管控;数据库扩展;MQ 扩展;Redis 扩展;服务水平扩展;服务垂直扩展
- 场景
3. 课程实践
然后就开始讲代码了