2月7日Day14 电商秒杀系统设计初学|青训营笔记

131 阅读2分钟

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

系统设计

如何做系统设计

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

如何发现系统的瓶颈

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

如何保证可用性和稳定性

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

电商秒杀业务介绍

秒杀业务的特点

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

秒杀业务的挑战

资源成本,反欺诈,高性能,防止超卖,流量管控,扩展性,鲁棒性

秒杀系统设计

场景,存储,服务,扩展

场景 (Scenario)

电商秒杀系统需要在满足如下功能的前提下,考虑高并发的问题:

功能:
1. 秒杀活动发布
2. 秒杀商品详情
3. 秒杀下单
并发:
1. 万人参与秒杀
2. QPS 1w+
3. TPS 1k+

存储 (Storage)

多级缓存

MySQL ——> Redis ——> Localcache

分库分表

截屏2023-02-07 09.05.37.png

服务 (Service)

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

扩展 (Scale)

流量隔离 CDN 缓存优化 流量管控


数据库扩展 MQ扩展 Redis扩展 服务水平扩展 服务垂直扩展

系统架构图

截屏2023-02-07 09.05.48.png

秒杀业务流程

截屏2023-02-07 09.05.56.png