系统设计与实践 | 青训营笔记

116 阅读3分钟

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

课程内容

为什么要做系统设计

系统设计是软件工程的一个重要环节,具有如下几个重要目的:

  1. 明确需求:通过对需求进行分析,确定系统的功能、性能和可靠性需求。
  2. 架构设计:通过分析系统的组成部分,设计出系统的架构,包括系统的整体结构、各个组件之间的关系以及通信协议等。
  3. 预估成本:通过对系统的设计,预估出开发、测试和维护的成本,以便对项目进行合理的计划和安排。
  4. 保证可扩展性:通过合理的设计,保证系统的可扩展性,以适应未来的业务发展需求。
  5. 降低风险:通过对系统的设计,降低开发过程中的风险,以保证项目的顺利完成。

系统设计的概念是什么

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

如何做系统设计

4S分析法:

  • Scenario 场景:需要设计哪些功能,设计的质量性能等等需要有什么要求
  • Service 服务:大系统拆分成小系统
  • Storage 存储:数据如何存储,如何访问
  • Scale 升级:优化维护,解决缺陷,处理可能遇到的问题

如何分析系统瓶颈和优化

  • 火焰图分析
  • 链路分析
  • 全链路压测

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

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

电商和秒杀

基本概念

  • Spu与Sku:

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

    • SPU:产品基本信息,如名称、品牌、型号、类别、通用规格等。它是一个产品标识符,在同一产品的所有变体中都是唯一的。
    • SKU:指产品的特定变体的唯一标识符,如尺寸、颜色和其他选项。它用于跟踪库存水平,并帮助零售商有效地管理库存。

      简而言之,SPU指的是一般的产品,而SKU指的是该产品的特定版本

  • 秒杀业务的特点:如上文

秒杀的挑战

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

设计秒杀系统与实践总结

系统架构图

img

秒杀流程图

img

未完待续。。。。