课程目录:
教程内容:
适合谁
怎样设计Facebook?理解Google的三驾马车!
无系统设计经验,或系统设计基础薄弱
现在实习生(Intern)都在面系统设计了你知道么?
希望知道怎样设计Facebook Messenger? News Feed
希望知道怎样做一个爬虫系统
希望理解Google三驾马车
希望了解NoSQL Database
教程目录:第1章
本节大纲
走进系统设计与新鲜事系统 Introduction to System Design & News Feed System【免费试听】
什么是系统设计 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
第2章
本节大纲
从用户系统中理解数据库与缓存 Design User System - Database & Memcache
通过设计用户系统了解:
用户系统的特点是什么?
什么是会话 Session?
什么是数据库,什么是缓存,他们之间如何配合?
什么是 Cache Through 什么是 Cache Aside
NoSQL 与 SQL 数据库的优劣比较与选取标准
如何进行数据库分片 Sharding
第3章
本节大纲
一致性哈希算法 & 设计短网址系统 Consistent Hashing & Design Tiny Url
实战真题
1) What happend if you visit www.google.com?
2) How to design tiny url?
3) How to design rate limiter?
4) How to design data dog?
关键词:Web, Consistent Hashing, Memcached, Tiny url.
第4章
本节大纲
以GFS为例探索分布式文件系统 Distributed File System
以 GFS 为例系统学习 Google File System,了解如下内容:
Master Slave 的设计模式
怎么处理分布式系统中的failure 和recovery 的问题.
如何做replica, check sum 检查
了解consistent hash和sharding的实际应用
第5章
本节大纲
爬虫系统与搜索建议系统 Web Crawler & Google Suggestion
通过对爬虫系统设计 (Web Crawler) 与 搜索建议系统设计 (Google Suggestion) 了解如下内容:
多线程
生产者消费者模型
爬虫系统的演化:单线程,多线程,分布式
Trie 结构的原理及应用
如何在系统设计中使用 Trie
第6章
本节大纲
以Big Table为例探索分布式数据库 Distributed Database
通过设计分布式数据库系统Bigtable了解如下内容:
Big Table 的原理与实现
了解NoSQL Database如何进行读写操作的,以及相应的优化
了解如何建立index
学习Bloom Filter的实现原理
第7章
本节大纲
基于地理位置信息的系统设计 Location Based Service
系统学习LBS相关系统设计的核心要点:
地理位置信息存储与查询常用算法之 Geohash
如何设计 Yelp
如何设计 Uber
如何设计 Facebook Nearby
第8章
本节大纲
分布式计算系统 - Map Reduce 的原理与应用
学习Map Reduce 的应用与原理
了解如何多台机器并行解决算法问题
掌握Map和Reduce的原理
通过三个题目掌握MapReduce算法实现:
WordCount
InvertedIndex
Anagram
第9章
本节大纲
聊天系统与访问限制系统 Message System & Rate Limiter
聊天系统中的 Pull vs Push
讲解一种特殊的Service - Realtime Service
用户在线状态的获取与查询 Online Status
访问限制系统及其设计原理 Rate Limiter
下载地址:
|