系统设计 | 青训营笔记

34 阅读2分钟

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

定义

系统设计的定义:为了达成某种目的,通过个体组成整体的过程。

如何做系统设计

流程:

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

如何发现系统的瓶颈

  1. 火焰图分析 (单个实例的分析,通过cpu和内存使用率得到代码上的瓶颈)
  2. 链路追踪 (一次请求会有很多个服务,通过链路追踪在哪个服务上耗时最大)
  3. 性能测试 (分析整个系统的性能)

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

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

流量漏斗:流量漏斗是一种市场营销模型,用于描述客户在购买决策过程中经历的不同阶段,以帮助企业更好地了解和控制营销过程。漏斗通常从宽阔的顶端开始,逐渐变窄,最后流向底部的转化率,表示随着客户的深入了解和考虑,可能会有越来越多的客户流失。

强弱依赖:弱依赖可以降级,强依赖是不可以降级的

什么是电商

image.png

电商发展:从之前的传统电商到社交电商(拼多多,微商)到现在的内容电商(直播电商,加强人与货之间的联系)

商品:具有交易价值和属性的信息载体

业务秒杀的特点

  1. 瞬时流量高
  2. 读多写少
  3. 实时性要求高