【实践课】手把手教你做系统设计 | 青训营笔记

147 阅读2分钟

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

一、本堂课重点内容:

  1. 系统设计方法论
  2. 电商秒杀业务介绍
  3. 课程实践
  4. 课程总结

二、详细知识点介绍:

2.1 系统设计方法论

  • 系统设计的概念:为了达成某种目的,通过个体组成整体的过程

    • 系统:关联的个体、规则运作、组成工作的整体
    • 设计:设想和计划、目的、过程安排
  • 如何做系统设计

    • 4S分析法:
      • 场景(Scenario):什么系统,需要什么功能、多大的并发量
      • 存储(Storage):数据如何组织、Sql存储、NoSql存储
      • 服务(Service):业务功能实现和逻辑整合
      • 可扩展性(Scale):解决设计缺陷,提高鲁棒性、扩展性
  • 如何分析系统瓶颈和优化

    • 火焰图分析
    • 链路分析
    • 全链路压测
  • 如何验证系统的可用性和稳定性

    • image.png
    • 链路梳理
    • 可观测性
    • 全链路测试
    • 稳定性控制
    • 容灾演练

2.2 电商和秒杀

基本概念
  • Spu: Standard Product Unit
  • Sku: Stock Keeping Unit
  • 秒杀业务的特点
    • 瞬时流量高
    • 读多写少
    • 实时性要求高
秒杀的挑战
  • 资源有限性
  • 反欺诈
  • 高性能
  • 防止超卖
  • 流量管控
  • 扩展性
  • 鲁棒性

2.3 设计秒杀系统

4S分析
  • 场景:
    • 功能
      • 秒杀活动发布
      • 秒杀商品查询
      • 秒杀下单
    • 并发
      • 万人参与
      • qps
  • 存储:
    • MySql -> Redis -> LocalCache
    • image.png
  • 服务:
    • 子服务
      • 用户服务
      • 风控服务
      • 活动服务
      • 订单服务
    • 基础组件
      • ID生成器
      • 缓存组件
      • MQ组件
      • 限流组件
  • 扩展:
    • image.png
系统架构图

2.4 实践

秒杀流程

代码链接

链接: 百度网盘 提取码: 4mg8

三、课后个人总结:

四、引用参考:

  • 我参考了哪些外部博客/笔记/文章?