这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
定义
系统设计的定义:为了达成某种目的,通过个体组成整体的过程。
如何做系统设计
流程:
- 场景分析 (做什么系统,需要哪些功能,支持多大的并发量)
- 存储设计 (数据如何组织,Sql存储和NoSql存储)
- 服务设计 (业务功能逻辑实现和逻辑整合)
- 可扩展性 (解决设计缺陷,提高鲁棒性和扩展性)
如何发现系统的瓶颈
- 火焰图分析 (单个实例的分析,通过cpu和内存使用率得到代码上的瓶颈)
- 链路追踪 (一次请求会有很多个服务,通过链路追踪在哪个服务上耗时最大)
- 性能测试 (分析整个系统的性能)
如何保证系统的可用性和稳定性
- 链路梳理 (核心链路、流量漏斗、强弱依赖)
- 可观测性 (链路追踪、核心监控、业务报警)
- 全链路测试 (压力测试、负载测试、容量测试)
- 稳定性测试 (系统限流、业务兜底、 熔断降级)
- 容灾演练 (混沌工程、应急手册、容灾预案)
流量漏斗:流量漏斗是一种市场营销模型,用于描述客户在购买决策过程中经历的不同阶段,以帮助企业更好地了解和控制营销过程。漏斗通常从宽阔的顶端开始,逐渐变窄,最后流向底部的转化率,表示随着客户的深入了解和考虑,可能会有越来越多的客户流失。
强弱依赖:弱依赖可以降级,强依赖是不可以降级的
什么是电商
电商发展:从之前的传统电商到社交电商(拼多多,微商)到现在的内容电商(直播电商,加强人与货之间的联系)
商品:具有交易价值和属性的信息载体
业务秒杀的特点
- 瞬时流量高
- 读多写少
- 实时性要求高