01常见题
系统 设计 面试题示例
这些
点击“练习”,
02试答一题
试答一道系统设计面试题
从上面的题目中挑一道,先写下你的回答。在你请求反馈之前,草稿只保存在当前浏览器。
03答题示例
为电商网站设计“最近浏览”功能。
高级
- 01
需求
每位
登录 用户 可以 在各个 设备上看到 最近 浏览的 20 件商品, 更新 延迟 在几秒 以内。 - 02
估算
如果
浏览量大约是下单 量的 十倍, 写入会占主导, 所以写路径要尽量轻。 - 03
设计
浏览
事件先写入队列, 由后台 任务 在键值存储里为每位 用户 维护 一个 上限 为 20 条的 列表。 - 04
取舍
我接受
几秒的 延迟来保证页面响应 速度; 如果 必须实时, 就改为同步写入, 代价是写入成本 更高。
04答题建议
系统 设计 面试答题要点
这样答更有效
- T1前五分钟
留给 需求: 谁在用、 主要的 读写 路径是什么、 这里的“快” 和“正确” 分别指什么。 - T2把粗略
估算说出来——每秒 请求数、 每年 存储量——数字取整即可。 - T3先画出一条
能跑通的端到端路径, 再加缓存、 队列或分片。 - T4每加一个组件,
都说清它挂了会怎样。 - T5最后点明你做了
什么 取舍, 以及到什么量级时 需要 重新 评估。
系统设计面试常见误区
- M1一个
需求 都没问, 就开始画微服务 架构图。 - M2题目
暗示 只有 几千 用户, 却按十亿 用户来设计。 - M3加了缓存,
却不说过期 数据 怎么 失效。 - M4只说“用 Kafka”“用 Redis”,
却不说明 需要它提供 什么 特性。 - M5完全
不提监控, 系统 出了 问题 也没人知道。
05国内求职
国内 系统 设计 面试 怎么 准备
校招偶尔考,社招几乎必考
校招一般
设计题常和 项目深挖混在一起
国内
把简历上的 系统画一遍
如果