系统设计相关问题
第一章 走进系统设计 & 新鲜事系统
- 什么是系统设计 What is System Design
- 系统设计中常见的问题是什么 How we ask System Design in Interview
- 怎样回答系统设计问题 How to answer System Design Question
- 系统设计的 4S 分析法 4S in System Design
- 系统设计的知识点构成 Basic Knowledge of System Design
- 设计推特 Design a Twitter
第二章 秒杀系统与订票系统设计
- 高并发场景下引发的常见问题
- 了解数据一致性
- 什么是动静分离
- 读写分离如何实现
- 如何防止超卖
第四章【互动】从用户系统设计中学习数据库与缓存
- 通过设计用户系统了解:
- 用户系统的特点是什么?
- 什么是会话 Session?
- 什么是数据库,什么是缓存,他们之间如何配合?
- 什么是 Cache Through 什么是 Cache Aside
- NoSQL 与 SQL 数据库的优劣比较与选取标准
第五章【互动】网站系统,API 设计与短网址
- 网站系统的基本构成
- API 设计问题
- 什么是 RestAPI
- 实战真题
What happend if you visit www.google.com?
How to design tiny url?
如何设计 News Feed API
设计 News Feed
如何设计 mention 功能
如何做翻页 Pagination
- 关键词:Web, Consistent Hashing, Memcached, Tiny url.
第六章 优惠券系统设计
- 了解优惠券的种类
- 介绍优惠券的核心流程
- 发放
- 使用
- 核销
- 分析优惠券系统的难点
- 如何解决使用优惠券时会出现的分布式问题
- 如何解决优惠券系统的高并发问题
- 表单结构设计,数据库优化
- 优化:快过期券提醒与发券接口限流保护
第八章【互动】数据库拓展与一致性哈希算法
- 什么是数据库拆分
- 横向拆分 vs 纵向拆分 Horizontal Sharding vs Vertical Sharding
- 一致性哈希算法的两个版本
- 实战真题:如何设计限流器 Rate Limiter
- 实战真题:如何设计实时数据系统 Data Dog
第九章【互动】分布式文件系统 GFS
- 以 GFS 为例系统学习分布式文件系统,了解如下内容:
Master Slave 的设计模式
分布式文件系统的读写流程
怎么处理分布式系统中的 failure 和 recovery 的问题.
如何做 replica, check sum 检查
了解 consistent hash 和 sharding 的实际应用
第十章【直播】文档协同编辑系统设计
- websocket 在协同编辑中的应用
- 了解什么是协同编辑
- 协同编辑的几种实现方案
- 如何解决编辑冲突问题
- 了解 OT( Operational Transformation)原理
第十二章【互动】分布式数据库 Big Table
- 通过设计分布式数据库系统 Bigtable 了解如下内容:
- Big Table 的原理与实现
- 了解 NoSQL Database 如何进行读写操作的,以及相应的优化
- 了解如何建立 index
- 学习 Bloom Filter 的实现原理
- Master Slave 的设计模式
第十三章【互动】聊天系统 IM System
- 聊天系统中的 Pull vs Push
- 讲解一种特殊的 Service - Realtime Service
- 用 channel 优化群聊
- 如何限制多机登录
- 用户在线状态的获取与查询 Online Status
第十四章【直播】视频流系统设计
- 视频切分和断点续传如何实现
- 如何在架构设计中节省带宽
- 小文件存储之视频切片与缩略图存储
- 了解视频预加载
- 了解 CDN 的基本原理
第十五章【视频】视频流系统设计(南帝老师主讲)
- 视频切分和断点续传如何实现
- 如何在架构设计中节省带宽
- 小文件存储之视频切片与缩略图存储
- 了解视频预加载
- 了解 CDN 的基本原理
第十六章【互动】基于地理位置的信息系统
- 系统学习 LBS 相关系统设计的核心要点:
- 地理位置信息存储与查询常用算法之 Geohash
- 如何设计 Uber
- 关键点:学会设计 Uber 以后可以轻松解决设计 Facebook Nearby 和 Yelp
第十七章【互动】分布式计算 Map Reduce
- 学习 Map Reduce 的应用与原理
- 了解如何多台机器并行解决算法问题
- 掌握 Map 和 Reduce 的原理
- 通过三个题目掌握 MapReduce 算法实现:
- WordCount
- InvertedIndex
- Anagram
第十八章【直播】推特搜索系统设计 Twitter Search
- 推特的海量推文数据如何存储
- 如何快速搜索
- 对搜索结果进行排名
- 搜索系统容错能力
第二十章【互动】爬虫系统与搜索建议系统
通过对爬虫系统设计 (Web Crawler) 与 搜索建议系统设计 (Google Suggestion) 了解如下内容:
- 多线程
- 生产者消费者模型
- 爬虫系统的演化:单线程,多线程,分布式
- Trie 结构的原理及应用
- 如何在系统设计中使用 Trie
第二十一章【互动】系统设计的核心必考知识点:数据库索引与事务(增)
- Mysql 索引的原理
- 索引的分类
- 索引的基本使用原则
- 事务的概念和原理
- 事务的应用场景
第二十二章【直播】评论系统设计 Comment system
- 如何设计评论区 API
- 评论全文搜索功能
- 异步任务
- 动态缓存
- 如何实现评论赞数和踩数
Simple is Awesome