后端基础day10-系统设计|青训营笔记

118 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第10天。本篇为第五届字节跳动青训营-寒假专场-后端基础课程的笔记。

课程内容

  • 系统设计方法论
  • 电商秒杀业务介绍
  • 课程实践
  • 课程总结

系统设计方法论

  • 为什么要做系统设计
    • 个人?
    • 工作?
  • 系统设计的概念是什么
  • 如何做系统设计
    • 4S分析法
      • 场景分析:什么系统,需要哪些功能,多大的并发量。
      • 存储设计:数据如何组织,sql存储,nosql存储。
      • 服务设计:业务功能实现和逻辑整合。
      • 可拓展性:解决设计缺陷,提高鲁棒性、拓展性。
  • 如何分析系统瓶颈和优化
    • 火焰图分析
    • 链路分析
    • 全链路压测
  • 如何验证系统的可用性和稳定性
    • 链路梳理
      • 核心链路
      • 流量漏斗
      • 强弱依赖
    • 可观测性
      • 链路追踪
      • 核心监控
      • 业务报警
    • 全链路测试
      • 压力测试
      • 负载测试
      • 容量测试
    • 稳定性控制
      • 系统限流
      • 业务兜底
      • 熔断降级
    • 容灾演练
      • 混沌工程
      • 应急手册
      • 容灾预案

电商秒杀业务介绍

基本概念

  • Spu
  • Sku
  • 秒杀业务的特点
    • 瞬时流量高
    • 读多写少
    • 实时性要求高

秒杀的挑战

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

设计秒杀系统

4S分析

  • 场景
    • 功能
      • 秒杀活动发布
      • 秒杀商品详情
      • 秒杀下单
    • 并发
      • 万人参与秒杀
      • QPS 1W+
      • TPS 1K+
  • 存储
    • localcache
    • redis
    • mysql
  • 服务
    • 子服务
      • 用户服务
      • 风控服务
      • 活动服务
      • 订单服务
    • 基础组件
      • ID生成器
      • 缓存组件
      • MQ组件
      • 限流组件
  • 扩展
    • 流量隔离
    • CDN
    • 缓存优化
    • 流量监控

系统架构图

image.png

实践

image.png

总结

  • 服务无状态
  • 批量写入
  • 最终一致性