系统设计 | 青训营笔记

65 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第10天

一. 重点内容

  • 系统设计方法论

  • 电商秒杀业务介绍

二. 知识点介绍

1. 系统设计方法论

  • 定义:为了达成某种目的,通过个体组成整体的过程
    • 系统:关联的个体;规则运作;组成工作的整体
    • 设计:设想和计划;目的;过程安排
  • 流程:场景 -> 存储 -> 服务 -> 扩展
    1. 场景分析: 系统?功能?并发量?
    1. 存储设计:组织数据?SQL存储?NoSQL存储
    1. 服务设计:业务功能实现和逻辑整合
    1. 可扩展性:解决设计缺陷,提高鲁棒性、扩展性
  • 发现系统的瓶颈:火焰图分析;链路追踪;性能测试
  • 保证可用性和稳定性
    • 链路梳理:核心链路;流量漏斗;强弱依赖
    • 可观测性:链路追踪;核心监控;业务报警
    • 全链路测试:压力测试;负载测试;容量测试
    • 稳定性控制:系统限流;业务兜底;熔断降级
    • 容灾演练:混沌工程;应急手册;容灾预案

2. 电商秒杀业务介绍

  • 电商介绍
    • 商品:具有交易价值和属性的信息载体
    • SPU: Standard Product Unit
    • SKU: Stock Keeping Unit
  • 秒杀业务
    • 特点:瞬时流量高;读多写少;实时性要求高
    • 挑战:资源成本;高性能;鲁棒性;流量管控;防止超卖
    • 场景:
      • 功能:秒杀活动发布;秒杀商品详情;秒杀下单
      • 并发:万人参与秒杀;QPS 1w+;TPS 1k+
    • 存储:MySQL -> Redis(分布式缓存) -> Localcache(效率高)
    • 服务:
      • 子服务:用户服务;风控服务;活动服务;订单服务
      • 基础组件:ID生成器;缓存组件;MQ组件;限流组件
    • 扩展:流量隔离;CDN;缓存优化;流量管控

  • 系统架构图image.png
  • 秒杀流程图image.png