这是我参与「第五届青训营」伴学笔记创作活动的第 10 天
课程内容
为什么要做系统设计
系统设计是软件工程的一个重要环节,具有如下几个重要目的:
- 明确需求:通过对需求进行分析,确定系统的功能、性能和可靠性需求。
- 架构设计:通过分析系统的组成部分,设计出系统的架构,包括系统的整体结构、各个组件之间的关系以及通信协议等。
- 预估成本:通过对系统的设计,预估出开发、测试和维护的成本,以便对项目进行合理的计划和安排。
- 保证可扩展性:通过合理的设计,保证系统的可扩展性,以适应未来的业务发展需求。
- 降低风险:通过对系统的设计,降低开发过程中的风险,以保证项目的顺利完成。
系统设计的概念是什么
系统设计是指对系统的功能、性能、可靠性、安全性、易用性、可扩展性等特性进行详细设计,并确定各个部分间的接口、协议、通信方式、数据格式等。系统设计是软件工程的一个重要环节,旨在通过对需求进行分析,制定出可行的、经济的、可扩展的、可维护的系统解决方案,为后续的实现提供指导。
如何做系统设计
4S分析法:
- Scenario 场景:需要设计哪些功能,设计的质量性能等等需要有什么要求
- Service 服务:大系统拆分成小系统
- Storage 存储:数据如何存储,如何访问
- Scale 升级:优化维护,解决缺陷,处理可能遇到的问题
如何分析系统瓶颈和优化
- 火焰图分析
- 链路分析
- 全链路压测
如何验证系统的可用性和稳定性
- 链路梳理
- 可观测性
- 全链路测试
- 稳定性控制
- 容灾演练
电商和秒杀
基本概念
-
Spu与Sku:
SPU(标准产品单位)和SKU(库存单位)是电子商务和零售管理中常用的术语。
- SPU:产品基本信息,如名称、品牌、型号、类别、通用规格等。它是一个产品标识符,在同一产品的所有变体中都是唯一的。
-
SKU:指产品的特定变体的唯一标识符,如尺寸、颜色和其他选项。它用于跟踪库存水平,并帮助零售商有效地管理库存。
简而言之,SPU指的是一般的产品,而SKU指的是该产品的特定版本。
- 秒杀业务的特点:如上文
秒杀的挑战
- 资源有限性:指系统内部的资源,如内存、带宽、硬盘空间等,是有限的。
- 反欺诈:指采取措施来防止欺诈行为的发生。
- 高性能:指系统的运行速度快、效率高。
- 防止超卖:指防止商品被卖完后,仍有客户购买到该商品。
- 流量管控:指对系统内部或外部的流量进行管理和控制,以保证系统正常运行。
- 扩展性:指系统具有较强的可扩展性,可以根据业务需求进行扩展。
- 鲁棒性:指系统具有较强的鲁棒性,即能够适应各种情况,不容易出错。
设计秒杀系统与实践总结
系统架构图
秒杀流程图
未完待续。。。。