大家都是怎么准备系统设计题的呢?
关于这个问题,其实,我有一个高效的作弊方法。
系统设计的题型无非是以下这些:
满打满算也就十八个,这样看起来还是很多,但实际上根本不用全掌握!!!
举个栗子,如果你面的是抖音,那么重点掌握:
秒杀系统与订票系统(抖店)
视频流系统(短视频)即时通讯系统 (私信)搜索建议系统(搜索)缓存系统评论系统
如果你面的是微博,重点掌握:
新鲜事系统(好友动态)
即时通讯系统 (私信)搜索建议系统(搜索)缓存系统评论系统
每个公司侧重的系统不一样,按照公司的业务重心、岗位JD来准备,可以帮你节约一半以上的时间!
在我们开发的《系统架构设计在线全提升》课程中,就包含了以上所有的热门系统,戳这里免费试听设计Twitter(覆盖信息流、缓存等)系统、秒杀系统的技巧和难点。
扫码报名,免费试听
接下来具体列一下各个系统的考点,感兴趣的也可以免费试听
1.秒杀系统与订单系统设计
  • 高并发场景下引发的常见问题
  • 了解数据一致性
  • 什么是动静分离
  • 读写分离如何实现
  • 如何防止超卖
2.用户系统
  • 什么是会话 Session?
  • 什么是数据库,什么是缓存,他们之间如何配合?
  • 什么是 Cache Through 什么是 Cache Aside
  • NoSQL 与 SQL 数据库的优劣比较与选取标准
3.网站系统,API设计与短网址
  • 网站系统的基本构成
  • API 设计问题
  • 什么是 RestAPI
  • 实战真题
What happend if you visit www.google.com?
How to design tiny url?
如何设计 News Feed API
如何设计 mention 功能
如何做翻页 Pagination
  • 关键词:Web, Consistent Hashing, Memcached, Tiny url.
4.优惠券系统设计
  • 了解优惠券的种类
  • 介绍优惠券的核心流程
  • 分析优惠券系统的难点
  • 如何解决使用优惠券时会出现的分布式问题
  • 如何解决优惠券系统的高并发问题
  • 表单结构设计,数据库优化
  • 优化:快过期券提醒与发券接口限流保护
5.数据库拓展与一致性哈希算法
  • 什么是数据库拆分
  • 横向拆分 vs 纵向拆分 Horizontal Sharding vs Vertical Sharding
  • 一致性哈希算法的两个版本
  • 实战真题:如何设计限流器 Rate Limiter
  • 实战真题:如何设计实时数据系统 Data Dog
6.分布式文件系统 GFS
以 GFS 为例系统学习分布式文件系统,了解如下内容:
  • Master Slave 的设计模式
  • 分布式文件系统的读写流程
  • 怎么处理分布式系统中的failure 和recovery 的问题.
  • 如何做replica, check sum 检查
  • 了解consistent hash和sharding的实际应用
7.文档协同编辑系统设计
  • websocket 在协同编辑中的应用
  • 了解什么是协同编辑
  • 协同编辑的几种实现方案
  • 如何解决编辑冲突问题
  • 了解 OT( Operational Transformation)原理
8.分布式数据库 Big Table
  • 通过设计分布式数据库系统Bigtable了解如下内容:
  • Big Table 的原理与实现
  • 了解NoSQL Database如何进行读写操作的,以及相应的优化
  • 了解如何建立index
  • 学习Bloom Filter的实现原理
  • Master Slave 的设计模式
9.聊天系统 IM System
  • 聊天系统中的 Pull vs Push
  • 讲解一种特殊的 Service - Realtime Service
  • 用 channel 优化群聊
  • 如何限制多机登录
  • 用户在线状态的获取与查询 Online Status
10.视频流系统设计
  • 视频切分和断点续传如何实现
  • 如何在架构设计中节省带宽
  • 小文件存储之视频切片与缩略图存储
  • 了解视频预加载
  • 了解 CDN 的基本原理
11.基于地理位置的信息系统
  • 系统学习LBS相关系统设计的核心要点:
  • 地理位置信息存储与查询常用算法之 Geohash
  • 如何设计 Uber
  • 关键点:学会设计 Uber 以后可以轻松解决设计 Facebook Nearby 和 Yelp
12.分布式计算 Map Reduce
  • 学习Map Reduce 的应用与原理
  • 了解如何多台机器并行解决算法问题
  • 掌握Map和Reduce的原理
  • 通过三个题目掌握MapReduce算法实现:
  • WordCount
  • InvertedIndex
  • Anagram
13.推特搜索系统设计 Twitter Search
  • 推特的海量推文数据如何存储
  • 如何快速搜索
  • 对搜索结果进行排名
  • 搜索系统容错能力
14.爬虫系统与搜索建议系统

通过对爬虫系统设计 (Web Crawler) 搜索建议系统设计 (Google Suggestion) 了解如下内容:

  • 多线程
  • 生产者消费者模型
  • 爬虫系统的演化:单线程,多线程,分布式
  • Trie 结构的原理及应用
  • 如何在系统设计中使用 Trie
15.系统设计的核心必考知识点:数据库索引与事务(增)
  • Mysql 索引的原理
  • 索引的分类
  • 索引的基本使用原则
  • 事务的概念和原理
  • 事务的应用场景
16.评论系统设计 Comment system
  • 如何设计评论区API
  • 评论全文搜索功能
  • 异步任务
  • 动态缓存
  • 如何实现评论赞数和踩数
扫码报名,免费试听
继续阅读
阅读原文