D
AI
学习工作台
后端面试题2026-03-171 分钟阅读

系统设计面试要点

系统设计面试核心框架与常见题型

系统设计面试架构记笔记标记疑惑

需求澄清

系统设计面试第一步是澄清需求,避免过度设计或遗漏关键点。

功能需求:核心功能有哪些?MVP 范围?哪些是 P0?例如设计短链服务,需明确:生成、跳转、统计、过期是否必需。

非功能需求:预期 QPS、P99 延迟、可用性目标(如 99.99%)、一致性要求(强一致 vs 最终一致)。

规模估算:日活、数据量、读写比例。用于后续选型:单机够不够?需要分库分表吗?

约束:技术栈偏好、预算、合规要求等。

分层与模块划分

接入层:负载均衡、限流、鉴权。LB 将流量分发到多台应用服务器。

服务层:无状态业务逻辑,可水平扩展。按领域拆分微服务,避免单体臃肿。

数据层:数据库选型(关系型 vs NoSQL)、缓存(Redis)、消息队列(Kafka)。根据读写特点选择:高并发读用缓存,异步解耦用 MQ。

存储选型:关系型适合强一致、复杂查询;KV 适合简单读写、高 QPS;搜索引擎适合全文检索;时序库适合监控指标。

高可用与扩展

冗余:无单点,关键组件多副本。数据库主从、Redis 集群、多机房部署。

故障转移:健康检查 + 自动摘除故障节点;主从切换(手动或自动)。需考虑脑裂、数据一致性。

扩展:水平扩展(加机器)优于垂直扩展(升配)。无状态服务易扩展;数据库需分库分表、读写分离。

降级与熔断:非核心功能可降级;依赖故障时熔断,避免雪崩。

知识卡片

问题

系统设计面试的「需求澄清」阶段应问哪些问题?

点击翻转查看答案

答案

功能需求(核心功能、优先级)、非功能需求(QPS、延迟、一致性)、规模估算(用户数、数据量)、约束(预算、技术栈)。

问题

高可用系统的「冗余」和「故障转移」分别指什么?

点击翻转查看答案

答案

冗余:多副本、多机房,消除单点;故障转移:主挂掉时备机接管,需健康检查、自动切换、数据同步。

问题

如何估算一个系统的 QPS 和存储?

点击翻转查看答案

答案

QPS:日活 × 每人操作次数 / 86400,再乘峰值系数;存储:单条记录大小 × 记录数 × 副本数 × 保留时长。