系统设计 | 青训营笔记

67 阅读2分钟

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

一、本堂课具体内容

  • 系统设计方法论
  • 电商秒杀业务

二、详细知识点介绍:

  • 系统设计方法论

    1. 为什么要做系统设计

      在个人方面,应付面试,对个人能力的提升,扩展技术视野

      在工作方面:业务驱动,系统重构,突破和创新。

    2. 如何评估一个系统

      可用性,安全性,扩展性,易用性,可维护性等

    3. 系统设计定义

      系统是一些关联的个体,按照特殊规则运作,组成完成工作的整体,设计是按照设想和计划完成目的的过程安排。系统设计定义是为了达成某种目的,通过个体组成整体的过程。

    4. 系统设计标准的流程

      场景分析-存储设计-服务设计-可扩展性

    5. 如何发现系统的瓶颈

      火焰分析图,链路追踪,性能测试。

    6. 如何保证可用性和稳定性:

      • 链路梳理:核心链路,流量漏斗,强弱依赖
      • 可观测性:链路追踪,核心监控,业务报警
      • 全链式测试:压力测试,负载测试,容量测试
      • 稳定性测试:系统限流,业务兜底,熔断降级
      • 容灾演练:混沌工程,应急手册,容灾预案
  • 电商秒杀业务介绍

    1. 秒杀的特点

      瞬时流量高、读多写少、实时性要求高

    2. 秒杀的挑战

      资源有限性、反欺诈、高性能、防止超卖、流量管控、扩展性、鲁棒性

    3. 如何设计秒杀系统

      • 功能:秒杀活动发布,秒杀商品详情,秒杀下单
      • 并发:万人参与秒杀,QPS1w+,TPS1k+
    4. 储存

      分三层 : MySQL-> Redis-> Localcache

    5. 服务

      • 子服务:用户服务,风控服务,活动服务,订单服务
      • 基础组件:ID生成器,缓存组件,MQ组件,限流组件
    6. 拓展

      • 流量隔离
      • CDN
      • 缓存优化
      • 流量管控
      • 数据库扩展
      • 服务水平扩展
      • MQ扩展
      • Redis扩展
      • 服务垂直扩展
    7. 系统架构 image.png