扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 场景题 > 系统设计高频面试题 > 面试回答系统设计题的思路

这部分内容主要参考了Github的一个国外的开源项目,写的很好,感兴趣的小伙伴可以去看看:https://github.com/donnemartin/system-design-primer

常见的系统设计题有设计一个秒杀系统、红包雨、URL短网址等,完成一个系统设计题大概需要分为四步。

需要注意的是,在面试过程中是比较紧张的,但遇到这种系统设计题,一定先不要急着回答,一定要先需要设计系统的一些使用场景。

1.第一步:像面试官不断提问,搞清楚系统的使用场景

系统的功能是什么

系统的目标群体是什么

系统的用户量有多大

希望每秒钟处理多少请求?

希望处理多少数据?

希望的读写比率?

第二步:创造一个高层级的设计

2. 画出主要的组件和连接例如设计一个网络爬虫,这个是个完整的架构图,在这一步只需要画出一个抽象的架构图即可,不需要这么具体。

3. 设计核心组件

对每一个核心组件进行具体地分析。例如,面试官让你设计一个url短网址,你需要考虑这些问题

  • 生成并储存一个完整 url 的 hash
    • MD5和 Base62
    • Hash 碰撞
    • SQL 还是 NoSQL
    • 数据库模型
  • 将一个 hashed url 翻译成完整的 url
    • 数据库查找
  • API 和面向对象设计

4. 对系统进行优化

找到系统的瓶颈所在,对其进行优化,例如可以考虑水平扩展、数据库分片等等。


点击面试手册,获取本站面试手册PDF完整版