这是我参与「第五届青训营 」笔记创作活动的第7天
系统设计
前置
如何评估一个系统
可用性、安全性、扩展性、性能、耦合性、可伸缩性、易用性等
如何做系统设计
系统设计的标准流程
- 场景分析
什么系统、需要哪些功能、多大的并发量 - 储存设计
数据如何组织,sql nosql - 服务设计
业务功能实现和逻辑整合 - 可扩展性
解决设计缺陷,提高稳定性 、扩展性
如何发现系统瓶颈
- 火焰图分析
- 链路追踪
- 性能测试
如何保证可用性以及稳定性
- 链路梳理
核心链路,流量漏斗,强弱依赖 - 可观测性
链路追踪、核心监控、业务报警 - 全链路检测
压力测试、负载测试、容量测试 - 稳定性控制
系统限流、业务兜底、熔断降级 - 容灾演习
容灾预案、混沌工程、应急手册
电商秒杀业务
秒杀挑战
包括资源成本、高性能、扩展性、防止超卖、鲁棒性、流量管控、反欺诈
如何设计秒杀系统
- 场景
功能包括秒杀活动发布、商品详情、秒杀下单等 并发量高; - 存储
-
服务
子服务:用户服务、风控服务、活动服务、订单服务;
基础组件:ID生成器、缓存组件、MQ组件、限流组件; -
扩展
流量隔离、CDN、缓存优化、流量管控、数据库扩展、服务扩展(负载均衡)、MQ扩展、Redis扩展等
系统架构图
课程实践
秒杀流程图
小结
本次课程主要讲述了系统设计以及秒杀系统实践,工程实践部分难度较大,需要多阅读代码。