系统设计方法论
为什么要做系统设计
个人
For 面试
个人能力提升
拓展技术视野
工作
业务驱动
系统重构
突破和创新
如何评估一个系统
可用性
安全性
扩展性
易用性
性能
耦合性
可维护性
伸缩性
系统设计的定义:为了达成某种目的,通过个体组成整体的过程
系统
关联的个体
规则运作
组成工作的整体
设计
设想和计划
目的
过程安排
如何做系统设计:4S 分析法
场景分析(Scenario)
什么系统,需要哪些功能,多大的并发量
存储设计(Storage)
数据如何组织,Sql 存储,NoSql 存储
服务设计(Service)
业务功能实现和逻辑整合
可扩展性(Scale)
解决设计缺陷,提高鲁棒性、扩展性
如何发现系统的瓶颈
火焰图分析
链路分析
性能测试
如何保证可用性和稳定性
链路梳理
核心链路
流量漏斗
强弱依赖
可观测性
链路追踪
核心监控
业务报警
全链路测试
压力测试
负载测试
容量测试
稳定性控制
系统限流
业务兜底
熔断降级
容灾演练
混沌工程
应急手册
容灾预案
电商秒杀业务介绍基本概念电商介绍
商品:具有交易价值和属性的信息载体
SPU:Standard Product Unit
SKU:Stock Keeping Unit
秒杀业务的特点
瞬时流量高
读多写少
实时性要求高
秒杀的挑战
资源成本
反欺诈
高性能
防止超卖
流量管控
扩展性
鲁棒性
设计秒杀系统场景(Scenario)
功能:
秒杀活动发布
秒杀商品详情
秒杀下单
并发:
万人参与秒杀
QPS 1w+
TPS 1k+
存储(Storage)
服务(Service)
子服务:
用户服务
风控服务
活动服务
订单服务
基础组件:
ID 生成器
缓存组件
MQ 组件
限流组件
扩展(Scale)
流量隔离
CDN
缓存优化
流量管控
数据库扩展
MQ 扩展
Redis 扩展
服务水平扩展
服务垂直扩展
系统架构图
课程实践秒杀流程图
代码链接课程总结
许可协议
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 许可协议,转载请注明出处。
分享文章