这是我参与「第五届青训营 」伴学笔记创作活动的第 9天
为什么要做系统设计
个人
为了面试 个人能力提升 拓展技术视野:设计新的技术,会极大拓展技术视野
工作
业务驱动: 系统重构:系统存在问题,对系统重构 突破和创新:直播电商对于传统电商的突破。
如何评估一个系统
可用性: 易用性 可维护性 安全性 拓展性 耦合性
系统设计的定义
系统是什么
他是一个关联的个体,规则运作 组成工作的整体
设计是什么
设想和计划 目的 过程安排 定义:为了达成某种目的,通过个体组成整体的过程
如何发现系统的瓶颈
火焰图分析 链路追踪 性能测试
如何保证可用性和稳定性
链路梳理
核心链路 流量漏斗 强弱依赖
可观测性
链路追踪 核心监控 业务报警
全链路测试
压力测试 负载测试 容量测试
稳定性控制
系统限流 业务兜底 熔断降级
容灾演练
混沌工程 应急手册 容灾预案
电商介绍
商品:具有交易价值和属性的信息载体 spu:standard product unit sku:stock keeping unit
秒杀业务的特点
瞬时流量高 读多写少 实时性要求高
秒杀的挑战
资源成本 高性能 拓展性 防止超卖 反欺诈 流量管控 鲁棒性
场景(scenario)
场景 存储 服务 拓展 功能: 秒杀活动发布 秒杀商品详情 秒杀下单’ 并发: 万人参与秒杀 qps 1w+ tps 1k+
子服务
用户服务 风控服务 活动服务 订单服务
基础组件
id生成器 缓存组件 mq组件 限流组件 流量隔离 cdn 缓存优化 流量管理 redis拓展 数据库拓展 mq拓展 redis拓展 服务水平拓展 服务垂直拓展