跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何答好面试中的系统设计题?
未分類
7 9 月 2020

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

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

資深大佬 : hakunamatata11 16

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

  • 可行解 Work Solution 25%
  • 特定问题 Special Case 20%
  • 分析能力 Analysis 25%
  • 权衡 Tradeoff 15%
  • 知识储备 Knowledge Base 15%

在面试中,常见的错误是面试官给出问题后,候选人就开始怼各种关键词,什么 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 = 100,那么用你的笔记本作 Web 服务器就好了;
  • QPS = 1K,一台好点的 Web 服务器也能应付,需要考虑 Single Point Failure ;
  • QPS = 1m,则需要建设一个 1000 台 Web 服务器的集群,并且要考虑如何 Maintainance (某一台挂了怎么办)。

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

  • 一台 Web Server 承受量约为 1K 的 QPS (考虑到逻辑处理时间以及数据库查询的瓶颈);
  • 一台 SQL Database 承受量约为 1K 的 QPS (如果 JOIN 和 INDEX query 比较多的话,这个值会更小);
  • 一台 NoSQL Database (Cassandra) 约承受量是 10k 的 QPS ;
  • 一台 NoSQL Database (Memcached) 约承受量是 1M 的 QPS 。

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

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具