系统设计|青训营笔记

141 阅读3分钟

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

1. 概述

我将主要介绍如下知识点:

  1. 系统设计方法论
  2. 电商秒杀业务介绍

2. 系统设计方法论

2.1 为什么要做系统设计

  • 个人:提升个人能力、拓展技术视野
  • 工作:业务驱动、系统重构、突破和创新

2.2 系统设计的定义

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

总结为了达成某种目的,通过个体组成整体的过程

系统设计是指对系统的功能、性能、可靠性、安全性、易用性、可扩展性等特性进行详细设计,并确定各个部分间的接口、协议、通信方式、数据格式等,旨在通过对需求进行分析,制定出可行的、经济的、可扩展的、可维护的系统解决方案,为后续的实现提供指导

2.3 如何做系统设计

4S 分析法

  • 场景分析(Scenario):

    • 什么系统,需要哪些功能,多大的并发量
  • 存储设计(Storage):

    • 数据如何组织,Sql 存储,NoSql 存储
  • 服务设计(Service):

    • 业务功能实现和逻辑整合
  • 扩展性(Scale):

    • 解决设计缺陷,提高鲁棒性、扩展性

2.4 如何分析系统瓶颈和优化

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

2.5 如何验证系统的可用性和稳定性

  • 链路梳理

    核心链路、流量漏斗、强弱依赖

  • 可观测性

    链路追踪、核心监控、业务报警

  • 全链路测试

    压力测试、负载测试、容量测试

  • 稳定性控制

    系统限流、业务兜底、熔断降级

  • 容灾演练

    混沌工程、应急手册、容灾预案

3. 电商秒杀业务介绍

3.1 电商介绍

三要素:人、货、场

  • 消费者侧:消费者,用户,流量来源
  • 供给侧:商品,商家,供应链
  • 交易环境:线下商场,线上电商

Spu 与 Sku

SPU(标准产品单位) 和 SKU(库存单位) 是电子商务和零售管理中常用的术语

  • SPU(Standard Product Unit):标准化产品单元。是商品信息聚合的最小单位,描述了一个产品的特性,如名称、品牌、型号、类别、通用规格等

  • SKU(Stock Keeping Unit):库存单位。物理上不可分割的最小存货单元。也就是说一款商品,可以根据SKU来确定具体的货物存量

3.2 秒杀的挑战

秒杀业务的特点

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

秒杀的挑战

  • 资源成本:指系统内部的资源是有限的
  • 反欺诈:指采取措施来防止欺诈行为的发生
  • 高性能:指系统的运行速度快、效率高
  • 防止超卖:指防止商品被卖完后,仍有客户购买到该商品
  • 流量管控:指对系统内部或外部的流量进行管理和控制,以保证系统正常运行
  • 扩展性:指系统具有较强的可扩展性,可以根据业务需求进行扩展。
  • 鲁棒性:指系统具有较强的鲁棒性,即能够适应各种情况,不容易出错。

4. 总结

系统设计是软件工程的一个重要环节,通过对系统的设计,可以方便我们对项目进行合理的计划和安排,保证系统的可扩展性,降低开发过程中的风险,以保证项目的顺利完成。

参考:

  • 字节内部课:手把手教你做系统设计