这是我参与「第五届青训营」伴学笔记创作活动的第 9 天
系统设计方法论
系统设计的问题
系统评估指标:可用性、易用性、安全性、扩展性、性能、可维护性、耦合性、伸缩性......
为什么要做系统设计?
TO个人
- 面试问题
- 个人能力提升:考虑很多问题
- 拓展技术视野:选用新的技术
工作
- 业务驱动
- 系统重构:系统存在问题
- 突破和创新:直播电商的突破和创新
系统设计的定义是什么?
系统:关联的个体、规则运作、组成工作的整体
设计:设想和计划、目的、过程安排
系统设计:为了达成某种目的,通过个体组成整体的过程
怎么做系统设计,如何落地一个系统?
4S分析法
- 场景分析(Scenario):什么系统,需要哪些功能多大的并发 量
- 存储设计(Storage):数据如何组织,Sql存储,NoSq|存储
- 服务设计(Service):业务功能实现的逻辑整合
- 可扩展性(Scale):解决设计缺陷,提高鲁棒性
系统功能实现以后,如何分析瓶颈并优化?
如何发现系统瓶颈:
火焰图分析:针对单个实例,分析CPU、内存使用
链路追踪:分析请求经过了哪些服务,在各自服务上的耗时等
性能测试
如何验证系统的可用性和稳定性?
链路梳理
核心链路
流量漏斗
强弱依赖
可观测性
链路追踪
核心监控
业务报警
全链路测试
压力测试
负载测试
容量测试
稳定性控制
系统限流
业务兜底
熔断降级
容灾演练
混沌工程
应急手册
容灾预案
电商秒杀业务介绍
基本概念
- 商品:具有交易价值和属性的信息载体
- Spu:Standard Product Unit(标准商品单元)
- Sku:Stock Keeping Unit(库存保持单元)
- QPS(Query Per Second):每秒请求数,就是说服务器在一秒的时间内处理了多少个请求。
- TPS(Transactions Per Second) 每秒事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,
秒杀业务的特点
- 瞬时流量高
- 读多写少
- 实时性要求高
秒杀的挑战
- 资源有限性
- 反欺诈
- 高性能
- 防止超卖
- 流量管控
- 扩展性
- 鲁棒性