如何答好面试中的系统设计题?

2020-08-20 19:20:25 +08:00
 hakunamatata11

系统设计面试主要考察以下几个方面:

在面试中,常见的错误是面试官给出问题后,候选人就开始怼各种关键词,什么 Load Balancer,Memcache,NodeJS,MongoDB,MySQL……

实际上,针对系统设计问题,九章算法有一套 4S 分析法,即使完全不知道的问题也可以按照这个方法一步步去回答。

所谓 4S 分析法中的 4S 是指Scenario (场景),Service (服务),Storage (存储),Scale (扩展)。

接下来,我们结合 4S 分析法来具体回答一道常见系统设计题:如何设计一个推特?

第一步:Scenario 场景

在这一步,你需要询问面试官:需要设计哪些功能(也可以自己想),需要承受多大的访问量?

首先可以把 Twitter 的功能一个个罗列出来,很显然你无法在 45 分钟的面试中完成所有功能的设计,所以需要筛选出核心功能( Post a Tweet,Timeline,News Feed,Follow/Unfollow a user,Register/Login )。

然后有的面试官可能会问你系统承受的 QPS 大概是多少?需要考虑并发用户,读频率( Read QPS )以及写频率( Write QPS )。记住重要的是你的思考和计算过程而不是计算结果。

分析 QPS 有什么用?

QPS 和 服务器 /数据库之间的关系

关于更多的内容,可以来看我主讲的**《系统架构设计》**,现在前两节限免开放。

900 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX