mirror of
https://github.com/donnemartin/system-design-primer.git
synced 2025-12-16 09:58:56 +03:00
Pages1 (#518)
* Add mkdocs configuration and update index page for System Design Primer: Update Edition - Created mkdocs.yml to establish a structured documentation site with multilingual support. - Updated index.md to reflect the new edition's focus on 2025 software development trends, including Kubernetes and Generative AI. - Enhanced navigation with links to contributing guidelines, changelog, and language-specific resources for improved accessibility. * Move images and solution under docs * Add MkDocs deploy workflow * Add MkDocs deploy workflow * Update navigation and image paths in documentation - Renamed "Start Here" to "Study Guide Start Here" in mkdocs.yml for clarity. - Added "System Design Interview Questions" to the navigation. - Updated image paths in multiple language documentation files to ensure correct referencing. - Enhanced multilingual support by maintaining consistent image paths across all language versions. * merge resloved * Move images and solution under docs
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
# 系统设计入门
|
||||
|
||||
<p align="center">
|
||||
<img src="images/jj3A5N8.png">
|
||||
<img src="../../images/jj3A5N8.png">
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
## 抽认卡
|
||||
|
||||
<p align="center">
|
||||
<img src="images/zdCAkB3.png">
|
||||
<img src="../../images/zdCAkB3.png">
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
你正在寻找资源以准备[**编程面试**](https://github.com/donnemartin/interactive-coding-challenges)吗?
|
||||
|
||||
<p align="center">
|
||||
<img src="images/b4YtAEN.png">
|
||||
<img src="../../images/b4YtAEN.png">
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
@@ -97,96 +97,182 @@
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="images/jrUBAF7.png">
|
||||
<img src="../../images/jrUBAF7.png">
|
||||
<br/>
|
||||
</p>
|
||||
|
||||
* [系统设计主题:从这里开始](#系统设计主题从这里开始)
|
||||
* [第一步:回顾可扩展性的视频讲座](#第一步回顾可扩展性scalability的视频讲座)
|
||||
* [第二步:回顾可扩展性的文章](#第二步回顾可扩展性文章)
|
||||
* [接下来的步骤](#接下来的步骤)
|
||||
* [性能与拓展性](#性能与可扩展性)
|
||||
* [延迟与吞吐量](#延迟与吞吐量)
|
||||
* [可用性与一致性](#可用性与一致性)
|
||||
* [CAP 理论](#cap-理论)
|
||||
* [CP - 一致性和分区容错性](#cp--一致性和分区容错性)
|
||||
* [AP - 可用性和分区容错性](#ap--可用性与分区容错性)
|
||||
* [一致模式](#一致性模式)
|
||||
* [弱一致性](#弱一致性)
|
||||
* [最终一致性](#最终一致性)
|
||||
* [强一致性](#强一致性)
|
||||
* [可用模式](#可用性模式)
|
||||
* [故障切换](#故障切换)
|
||||
* [复制](#复制)
|
||||
* [域名系统](#域名系统)
|
||||
* [CDN](#内容分发网络cdn)
|
||||
* [CDN 推送](#cdn-推送push)
|
||||
* [CDN 拉取](#cdn-拉取pull)
|
||||
* [负载均衡器](#负载均衡器)
|
||||
* [工作到备用切换(Active-passive)](#工作到备用切换active-passive)
|
||||
* [双工作切换(Active-active)](#双工作切换active-active)
|
||||
* [四层负载均衡](#四层负载均衡)
|
||||
* [七层负载均衡](#七层负载均衡器)
|
||||
* [水平扩展](#水平扩展)
|
||||
* [反向代理(web 服务器)](#反向代理web-服务器)
|
||||
* [负载均衡与反向代理](#负载均衡器与反向代理)
|
||||
* [应用层](#应用层)
|
||||
* [微服务](#微服务)
|
||||
* [服务发现](#服务发现)
|
||||
* [数据库](#数据库)
|
||||
* [关系型数据库管理系统(RDBMS)](#关系型数据库管理系统rdbms)
|
||||
* [Master-slave 复制集](#主从复制)
|
||||
* [Master-master 复制集](#主主复制)
|
||||
* [联合](#联合)
|
||||
* [分片](#分片)
|
||||
* [非规范化](#非规范化)
|
||||
* [SQL 调优](#sql-调优)
|
||||
* [NoSQL](#nosql)
|
||||
* [Key-value 存储](#键-值存储)
|
||||
* [文档存储](#文档类型存储)
|
||||
* [宽列存储](#列型存储)
|
||||
* [图数据库](#图数据库)
|
||||
* [SQL 还是 NoSQL](#sql-还是-nosql)
|
||||
* [缓存](#缓存)
|
||||
* [客户端缓存](#客户端缓存)
|
||||
* [CDN 缓存](#cdn-缓存)
|
||||
* [Web 服务器缓存](#web-服务器缓存)
|
||||
* [数据库缓存](#数据库缓存)
|
||||
* [应用缓存](#应用缓存)
|
||||
* [数据库查询级别的缓存](#数据库查询级别的缓存)
|
||||
* [对象级别的缓存](#对象级别的缓存)
|
||||
* [何时更新缓存](#何时更新缓存)
|
||||
* [缓存模式](#缓存模式)
|
||||
* [直写模式](#直写模式)
|
||||
* [回写模式](#回写模式)
|
||||
* [刷新](#刷新)
|
||||
* [异步](#异步)
|
||||
* [消息队列](#消息队列)
|
||||
* [任务队列](#任务队列)
|
||||
* [背压机制](#背压)
|
||||
* [通讯](#通讯)
|
||||
* [传输控制协议(TCP)](#传输控制协议tcp)
|
||||
* [用户数据报协议(UDP)](#用户数据报协议udp)
|
||||
* [远程控制调用协议(RPC)](#远程过程调用协议rpc)
|
||||
* [表述性状态转移(REST)](#表述性状态转移rest)
|
||||
* [安全](#安全)
|
||||
* [附录](#附录)
|
||||
* [2 的次方表](#2-的次方表)
|
||||
* [每个程序员都应该知道的延迟数](#每个程序员都应该知道的延迟数)
|
||||
* [其它的系统设计面试题](#其它的系统设计面试题)
|
||||
* [真实架构](#真实架构)
|
||||
* [公司的系统架构](#公司的系统架构)
|
||||
* [公司工程博客](#公司工程博客)
|
||||
* [正在完善中](#正在完善中)
|
||||
* [致谢](#致谢)
|
||||
* [联系方式](#联系方式)
|
||||
* [许可](#许可)
|
||||
- [系统设计入门](#系统设计入门)
|
||||
- [目的](#目的)
|
||||
- [学习如何设计大型系统](#学习如何设计大型系统)
|
||||
- [从开源社区学习](#从开源社区学习)
|
||||
- [为系统设计的面试做准备](#为系统设计的面试做准备)
|
||||
- [抽认卡](#抽认卡)
|
||||
- [代码资源:互动式编程挑战](#代码资源互动式编程挑战)
|
||||
- [贡献](#贡献)
|
||||
- [系统设计主题的索引](#系统设计主题的索引)
|
||||
- [学习指引](#学习指引)
|
||||
- [如何处理一个系统设计的面试题](#如何处理一个系统设计的面试题)
|
||||
- [第一步:描述使用场景,约束和假设](#第一步描述使用场景约束和假设)
|
||||
- [第二步:创造一个高层级的设计](#第二步创造一个高层级的设计)
|
||||
- [第三步:设计核心组件](#第三步设计核心组件)
|
||||
- [第四步:扩展设计](#第四步扩展设计)
|
||||
- [预估计算量](#预估计算量)
|
||||
- [相关资源和延伸阅读](#相关资源和延伸阅读)
|
||||
- [系统设计的面试题和解答](#系统设计的面试题和解答)
|
||||
- [设计 Pastebin.com (或者 Bit.ly)](#设计-pastebincom-或者-bitly)
|
||||
- [设计 Twitter 时间线和搜索 (或者 Facebook feed 和搜索)](#设计-twitter-时间线和搜索-或者-facebook-feed-和搜索)
|
||||
- [设计一个网页爬虫](#设计一个网页爬虫)
|
||||
- [设计 Mint.com](#设计-mintcom)
|
||||
- [为一个社交网络设计数据结构](#为一个社交网络设计数据结构)
|
||||
- [为搜索引擎设计一个 key-value 储存](#为搜索引擎设计一个-key-value-储存)
|
||||
- [设计按类别分类的 Amazon 销售排名](#设计按类别分类的-amazon-销售排名)
|
||||
- [在 AWS 上设计一个百万用户级别的系统](#在-aws-上设计一个百万用户级别的系统)
|
||||
- [面向对象设计的面试问题及解答](#面向对象设计的面试问题及解答)
|
||||
- [系统设计主题:从这里开始](#系统设计主题从这里开始)
|
||||
- [第一步:回顾可扩展性(scalability)的视频讲座](#第一步回顾可扩展性scalability的视频讲座)
|
||||
- [第二步:回顾可扩展性文章](#第二步回顾可扩展性文章)
|
||||
- [接下来的步骤](#接下来的步骤)
|
||||
- [性能与可扩展性](#性能与可扩展性)
|
||||
- [来源及延伸阅读](#来源及延伸阅读)
|
||||
- [延迟与吞吐量](#延迟与吞吐量)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-1)
|
||||
- [可用性与一致性](#可用性与一致性)
|
||||
- [CAP 理论](#cap-理论)
|
||||
- [CP ─ 一致性和分区容错性](#cp--一致性和分区容错性)
|
||||
- [AP ─ 可用性与分区容错性](#ap--可用性与分区容错性)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-2)
|
||||
- [一致性模式](#一致性模式)
|
||||
- [弱一致性](#弱一致性)
|
||||
- [最终一致性](#最终一致性)
|
||||
- [强一致性](#强一致性)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-3)
|
||||
- [可用性模式](#可用性模式)
|
||||
- [故障切换](#故障切换)
|
||||
- [工作到备用切换(Active-passive)](#工作到备用切换active-passive)
|
||||
- [双工作切换(Active-active)](#双工作切换active-active)
|
||||
- [缺陷:故障切换](#缺陷故障切换)
|
||||
- [复制](#复制)
|
||||
- [主─从复制和主─主复制](#主从复制和主主复制)
|
||||
- [域名系统](#域名系统)
|
||||
- [缺陷:DNS](#缺陷dns)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-4)
|
||||
- [内容分发网络(CDN)](#内容分发网络cdn)
|
||||
- [CDN 推送(push)](#cdn-推送push)
|
||||
- [CDN 拉取(pull)](#cdn-拉取pull)
|
||||
- [缺陷:CDN](#缺陷cdn)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-5)
|
||||
- [负载均衡器](#负载均衡器)
|
||||
- [四层负载均衡](#四层负载均衡)
|
||||
- [七层负载均衡器](#七层负载均衡器)
|
||||
- [水平扩展](#水平扩展)
|
||||
- [缺陷:水平扩展](#缺陷水平扩展)
|
||||
- [缺陷:负载均衡器](#缺陷负载均衡器)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-6)
|
||||
- [反向代理(web 服务器)](#反向代理web-服务器)
|
||||
- [负载均衡器与反向代理](#负载均衡器与反向代理)
|
||||
- [不利之处:反向代理](#不利之处反向代理)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-7)
|
||||
- [应用层](#应用层)
|
||||
- [微服务](#微服务)
|
||||
- [服务发现](#服务发现)
|
||||
- [不利之处:应用层](#不利之处应用层)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-8)
|
||||
- [数据库](#数据库)
|
||||
- [关系型数据库管理系统(RDBMS)](#关系型数据库管理系统rdbms)
|
||||
- [主从复制](#主从复制)
|
||||
- [不利之处:主从复制](#不利之处主从复制)
|
||||
- [主主复制](#主主复制)
|
||||
- [不利之处: 主主复制](#不利之处-主主复制)
|
||||
- [不利之处:复制](#不利之处复制)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-9)
|
||||
- [联合](#联合)
|
||||
- [不利之处:联合](#不利之处联合)
|
||||
- [来源及延伸阅读:联合](#来源及延伸阅读联合)
|
||||
- [分片](#分片)
|
||||
- [不利之处:分片](#不利之处分片)
|
||||
- [来源及延伸阅读:分片](#来源及延伸阅读分片)
|
||||
- [非规范化](#非规范化)
|
||||
- [不利之处:非规范化](#不利之处非规范化)
|
||||
- [来源及延伸阅读:非规范化](#来源及延伸阅读非规范化)
|
||||
- [SQL 调优](#sql-调优)
|
||||
- [改进模式](#改进模式)
|
||||
- [使用正确的索引](#使用正确的索引)
|
||||
- [避免高成本的联结操作](#避免高成本的联结操作)
|
||||
- [分割数据表](#分割数据表)
|
||||
- [调优查询缓存](#调优查询缓存)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-10)
|
||||
- [NoSQL](#nosql)
|
||||
- [键-值存储](#键-值存储)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-11)
|
||||
- [文档类型存储](#文档类型存储)
|
||||
- [来源及延伸阅读:文档类型存储](#来源及延伸阅读文档类型存储)
|
||||
- [列型存储](#列型存储)
|
||||
- [来源及延伸阅读:列型存储](#来源及延伸阅读列型存储)
|
||||
- [图数据库](#图数据库)
|
||||
- [相关资源和延伸阅读:图](#相关资源和延伸阅读图)
|
||||
- [来源及延伸阅读:NoSQL](#来源及延伸阅读nosql)
|
||||
- [SQL 还是 NoSQL](#sql-还是-nosql)
|
||||
- [来源及延伸阅读:SQL 或 NoSQL](#来源及延伸阅读sql-或-nosql)
|
||||
- [缓存](#缓存)
|
||||
- [客户端缓存](#客户端缓存)
|
||||
- [CDN 缓存](#cdn-缓存)
|
||||
- [Web 服务器缓存](#web-服务器缓存)
|
||||
- [数据库缓存](#数据库缓存)
|
||||
- [应用缓存](#应用缓存)
|
||||
- [数据库查询级别的缓存](#数据库查询级别的缓存)
|
||||
- [对象级别的缓存](#对象级别的缓存)
|
||||
- [何时更新缓存](#何时更新缓存)
|
||||
- [缓存模式](#缓存模式)
|
||||
- [缓存的缺点:](#缓存的缺点)
|
||||
- [直写模式](#直写模式)
|
||||
- [直写模式的缺点:](#直写模式的缺点)
|
||||
- [回写模式](#回写模式)
|
||||
- [回写模式的缺点:](#回写模式的缺点)
|
||||
- [刷新](#刷新)
|
||||
- [刷新的缺点:](#刷新的缺点)
|
||||
- [缓存的缺点:](#缓存的缺点-1)
|
||||
- [相关资源和延伸阅读](#相关资源和延伸阅读-1)
|
||||
- [异步](#异步)
|
||||
- [消息队列](#消息队列)
|
||||
- [任务队列](#任务队列)
|
||||
- [背压](#背压)
|
||||
- [异步的缺点:](#异步的缺点)
|
||||
- [相关资源和延伸阅读](#相关资源和延伸阅读-2)
|
||||
- [通讯](#通讯)
|
||||
- [超文本传输协议(HTTP)](#超文本传输协议http)
|
||||
- [来源及延伸阅读:HTTP](#来源及延伸阅读http)
|
||||
- [传输控制协议(TCP)](#传输控制协议tcp)
|
||||
- [用户数据报协议(UDP)](#用户数据报协议udp)
|
||||
- [来源及延伸阅读:TCP 与 UDP](#来源及延伸阅读tcp-与-udp)
|
||||
- [远程过程调用协议(RPC)](#远程过程调用协议rpc)
|
||||
- [缺点:RPC](#缺点rpc)
|
||||
- [表述性状态转移(REST)](#表述性状态转移rest)
|
||||
- [缺点:REST](#缺点rest)
|
||||
- [RPC 与 REST 比较](#rpc-与-rest-比较)
|
||||
- [来源及延伸阅读:REST 与 RPC](#来源及延伸阅读rest-与-rpc)
|
||||
- [安全](#安全)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-12)
|
||||
- [附录](#附录)
|
||||
- [2 的次方表](#2-的次方表)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-13)
|
||||
- [每个程序员都应该知道的延迟数](#每个程序员都应该知道的延迟数)
|
||||
- [延迟数可视化](#延迟数可视化)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-14)
|
||||
- [其它的系统设计面试题](#其它的系统设计面试题)
|
||||
- [真实架构](#真实架构)
|
||||
- [公司的系统架构](#公司的系统架构)
|
||||
- [公司工程博客](#公司工程博客)
|
||||
- [来源及延伸阅读](#来源及延伸阅读-15)
|
||||
- [正在完善中](#正在完善中)
|
||||
- [致谢](#致谢)
|
||||
- [联系方式](#联系方式)
|
||||
- [许可](#许可)
|
||||
|
||||
## 学习指引
|
||||
|
||||
> 基于你面试的时间线(短、中、长)去复习那些推荐的主题。
|
||||
|
||||

|
||||

|
||||
|
||||
**问:对于面试来说,我需要知道这里的所有知识点吗?**
|
||||
|
||||
@@ -307,49 +393,49 @@
|
||||
|
||||
[查看实践与解答](solutions/system_design/pastebin/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 设计 Twitter 时间线和搜索 (或者 Facebook feed 和搜索)
|
||||
|
||||
[查看实践与解答](solutions/system_design/twitter/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 设计一个网页爬虫
|
||||
|
||||
[查看实践与解答](solutions/system_design/web_crawler/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 设计 Mint.com
|
||||
|
||||
[查看实践与解答](solutions/system_design/mint/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 为一个社交网络设计数据结构
|
||||
|
||||
[查看实践与解答](solutions/system_design/social_graph/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 为搜索引擎设计一个 key-value 储存
|
||||
|
||||
[查看实践与解答](solutions/system_design/query_cache/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 设计按类别分类的 Amazon 销售排名
|
||||
|
||||
[查看实践与解答](solutions/system_design/sales_rank/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
### 在 AWS 上设计一个百万用户级别的系统
|
||||
|
||||
[查看实践与解答](solutions/system_design/scaling_aws/README.md)
|
||||
|
||||

|
||||

|
||||
|
||||
## 面向对象设计的面试问题及解答
|
||||
|
||||
@@ -441,7 +527,7 @@
|
||||
### CAP 理论
|
||||
|
||||
<p align="center">
|
||||
<img src="images/bgLMI2u.png">
|
||||
<img src="../../images/bgLMI2u.png">
|
||||
<br/>
|
||||
<strong><a href="http://robertgreiner.com/2014/08/cap-theorem-revisited">来源:再看 CAP 理论</a></strong>
|
||||
</p>
|
||||
@@ -536,7 +622,7 @@ DNS 和 email 等系统使用的是此种方式。最终一致性在高可用性
|
||||
## 域名系统
|
||||
|
||||
<p align="center">
|
||||
<img src="images/IOyLj4i.jpg">
|
||||
<img src="../../images/IOyLj4i.jpg">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/srikrupa5/dns-security-presentation-issa">来源:DNS 安全介绍</a></strong>
|
||||
</p>
|
||||
@@ -574,7 +660,7 @@ DNS 和 email 等系统使用的是此种方式。最终一致性在高可用性
|
||||
## 内容分发网络(CDN)
|
||||
|
||||
<p align="center">
|
||||
<img src="images/h9TAuGI.jpg">
|
||||
<img src="../../images/h9TAuGI.jpg">
|
||||
<br/>
|
||||
<strong><a href="https://www.creative-artworks.eu/why-use-a-content-delivery-network-cdn/">来源:为什么使用 CDN</a></strong>
|
||||
</p>
|
||||
@@ -613,7 +699,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
## 负载均衡器
|
||||
|
||||
<p align="center">
|
||||
<img src="images/h81n9iK.png">
|
||||
<img src="../../images/h81n9iK.png">
|
||||
<br/>
|
||||
<strong><a href="http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html">来源:可扩展的系统设计模式</a></strong>
|
||||
</p>
|
||||
@@ -682,7 +768,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
## 反向代理(web 服务器)
|
||||
|
||||
<p align="center">
|
||||
<img src="images/n41Azff.png">
|
||||
<img src="../../images/n41Azff.png">
|
||||
<br/>
|
||||
<strong><a href="https://upload.wikimedia.org/wikipedia/commons/6/67/Reverse_proxy_h2g2bob.svg">资料来源:维基百科</a></strong>
|
||||
<br/>
|
||||
@@ -726,7 +812,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
## 应用层
|
||||
|
||||
<p align="center">
|
||||
<img src="images/yB5SYwm.png">
|
||||
<img src="../../images/yB5SYwm.png">
|
||||
<br/>
|
||||
<strong><a href="http://lethain.com/introduction-to-architecting-systems-for-scale/#platform_layer">资料来源:可缩放系统构架介绍</a></strong>
|
||||
</p>
|
||||
@@ -764,7 +850,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
## 数据库
|
||||
|
||||
<p align="center">
|
||||
<img src="images/Xkm5CXz.png">
|
||||
<img src="../../images/Xkm5CXz.png">
|
||||
<br/>
|
||||
<strong><a href="https://www.youtube.com/watch?v=w95murBkYmU">资料来源:扩展你的用户数到第一个一千万</a></strong>
|
||||
</p>
|
||||
@@ -785,7 +871,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
关系型数据库扩展包括许多技术:**主从复制**、**主主复制**、**联合**、**分片**、**非规范化**和 **SQL调优**。
|
||||
|
||||
<p align="center">
|
||||
<img src="images/C9ioGtn.png">
|
||||
<img src="../../images/C9ioGtn.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns/">资料来源:可扩展性、可用性、稳定性、模式</a></strong>
|
||||
</p>
|
||||
@@ -800,7 +886,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
- 参考[不利之处:复制](#不利之处复制)中,主从复制和主主复制**共同**的问题。
|
||||
|
||||
<p align="center">
|
||||
<img src="images/krAHLGg.png">
|
||||
<img src="../../images/krAHLGg.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns/">资料来源:可扩展性、可用性、稳定性、模式</a></strong>
|
||||
</p>
|
||||
@@ -835,7 +921,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
#### 联合
|
||||
|
||||
<p align="center">
|
||||
<img src="images/U3qV33e.png">
|
||||
<img src="../../images/U3qV33e.png">
|
||||
<br/>
|
||||
<strong><a href="https://www.youtube.com/watch?v=w95murBkYmU">资料来源:扩展你的用户数到第一个一千万</a></strong>
|
||||
</p>
|
||||
@@ -857,7 +943,7 @@ CDN 拉取是当第一个用户请求该资源时,从服务器上拉取资源
|
||||
#### 分片
|
||||
|
||||
<p align="center">
|
||||
<img src="images/wU8x5Id.png">
|
||||
<img src="../../images/wU8x5Id.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns/">资料来源:可扩展性、可用性、稳定性、模式</a></strong>
|
||||
</p>
|
||||
@@ -1001,7 +1087,7 @@ MongoDB 和 CouchDB 等一些文档类型存储还提供了类似 SQL 语言的
|
||||
#### 列型存储
|
||||
|
||||
<p align="center">
|
||||
<img src="images/n16iOGk.png">
|
||||
<img src="../../images/n16iOGk.png">
|
||||
<br/>
|
||||
<strong><a href="http://blog.grio.com/2015/11/sql-nosql-a-brief-history.html">资料来源: SQL 和 NoSQL,一个简短的历史</a></strong>
|
||||
</p>
|
||||
@@ -1024,7 +1110,7 @@ Google 发布了第一个列型存储数据库 [Bigtable](http://www.read.seas.h
|
||||
#### 图数据库
|
||||
|
||||
<p align="center">
|
||||
<img src="images/fNcl65g.png">
|
||||
<img src="../../images/fNcl65g.png">
|
||||
<br/>
|
||||
<strong><a href="https://en.wikipedia.org/wiki/File:GraphDatabase_PropertyGraph.png"/>资料来源:图数据库</a></strong>
|
||||
</p>
|
||||
@@ -1051,7 +1137,7 @@ Google 发布了第一个列型存储数据库 [Bigtable](http://www.read.seas.h
|
||||
### SQL 还是 NoSQL
|
||||
|
||||
<p align="center">
|
||||
<img src="images/wXGqG5f.png">
|
||||
<img src="../../images/wXGqG5f.png">
|
||||
<br/>
|
||||
<strong><a href="https://www.infoq.com/articles/Transition-RDBMS-NoSQL/">资料来源:从 RDBMS 转换到 NoSQL</a></strong>
|
||||
</p>
|
||||
@@ -1092,7 +1178,7 @@ Google 发布了第一个列型存储数据库 [Bigtable](http://www.read.seas.h
|
||||
## 缓存
|
||||
|
||||
<p align="center">
|
||||
<img src="images/Q6z24La.png">
|
||||
<img src="../../images/Q6z24La.png">
|
||||
<br/>
|
||||
<strong><a href="http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html">资料来源:可扩展的系统设计模式</a></strong>
|
||||
</p>
|
||||
@@ -1163,7 +1249,7 @@ Redis 有下列附加功能:
|
||||
#### 缓存模式
|
||||
|
||||
<p align="center">
|
||||
<img src="images/ONjORqk.png">
|
||||
<img src="../../images/ONjORqk.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/tmatyashovsky/from-cache-to-in-memory-data-grid-introduction-to-hazelcast">资料来源:从缓存到内存数据网格</a></strong>
|
||||
</p>
|
||||
@@ -1199,7 +1285,7 @@ def get_user(self, user_id):
|
||||
#### 直写模式
|
||||
|
||||
<p align="center">
|
||||
<img src="images/0vBc0hN.png">
|
||||
<img src="../../images/0vBc0hN.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns/">资料来源:可扩展性、可用性、稳定性、模式</a></strong>
|
||||
</p>
|
||||
@@ -1234,7 +1320,7 @@ def set_user(user_id, values):
|
||||
#### 回写模式
|
||||
|
||||
<p align="center">
|
||||
<img src="images/rgSrvjG.png">
|
||||
<img src="../../images/rgSrvjG.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns/">资料来源:可扩展性、可用性、稳定性、模式</a></strong>
|
||||
</p>
|
||||
@@ -1252,7 +1338,7 @@ def set_user(user_id, values):
|
||||
#### 刷新
|
||||
|
||||
<p align="center">
|
||||
<img src="images/kxtjqgE.png">
|
||||
<img src="../../images/kxtjqgE.png">
|
||||
<br/>
|
||||
<strong><a href=http://www.slideshare.net/tmatyashovsky/from-cache-to-in-memory-data-grid-introduction-to-hazelcast>资料来源:从缓存到内存数据网格</a></strong>
|
||||
</p>
|
||||
@@ -1284,7 +1370,7 @@ def set_user(user_id, values):
|
||||
## 异步
|
||||
|
||||
<p align="center">
|
||||
<img src="images/54GYsSx.png">
|
||||
<img src="../../images/54GYsSx.png">
|
||||
<br/>
|
||||
<strong><a href=http://lethain.com/introduction-to-architecting-systems-for-scale/#platform_layer>资料来源:可缩放系统构架介绍</a></strong>
|
||||
</p>
|
||||
@@ -1330,7 +1416,7 @@ def set_user(user_id, values):
|
||||
## 通讯
|
||||
|
||||
<p align="center">
|
||||
<img src="images/5KeocQs.jpg">
|
||||
<img src="../../images/5KeocQs.jpg">
|
||||
<br/>
|
||||
<strong><a href=http://www.escotal.com/osilayer.html>资料来源:OSI 7层模型</a></strong>
|
||||
</p>
|
||||
@@ -1365,7 +1451,7 @@ HTTP 是依赖于较低级协议(如 **TCP** 和 **UDP**)的应用层协议
|
||||
### 传输控制协议(TCP)
|
||||
|
||||
<p align="center">
|
||||
<img src="images/JdAsdvG.jpg">
|
||||
<img src="../../images/JdAsdvG.jpg">
|
||||
<br/>
|
||||
<strong><a href="http://www.wildbunny.co.uk/blog/2012/10/09/how-to-make-a-multi-player-game-part-1/">资料来源:如何制作多人游戏</a></strong>
|
||||
</p>
|
||||
@@ -1389,7 +1475,7 @@ TCP 对于需要高可靠性但时间紧迫的应用程序很有用。比如包
|
||||
### 用户数据报协议(UDP)
|
||||
|
||||
<p align="center">
|
||||
<img src="images/yzDrJtA.jpg">
|
||||
<img src="../../images/yzDrJtA.jpg">
|
||||
<br/>
|
||||
<strong><a href="http://www.wildbunny.co.uk/blog/2012/10/09/how-to-make-a-multi-player-game-part-1">资料来源:如何制作多人游戏</a></strong>
|
||||
</p>
|
||||
@@ -1418,7 +1504,7 @@ UDP 可靠性更低但适合用在网络电话、视频聊天,流媒体和实
|
||||
### 远程过程调用协议(RPC)
|
||||
|
||||
<p align="center">
|
||||
<img src="images/iF4Mkb5.png">
|
||||
<img src="../../images/iF4Mkb5.png">
|
||||
<br/>
|
||||
<strong><a href="http://www.puncsky.com/blog/2016/02/14/crack-the-system-design-interview">Source: Crack the system design interview</a></strong>
|
||||
</p>
|
||||
@@ -1640,7 +1726,7 @@ Notes
|
||||
> 关于现实中真实的系统是怎么设计的文章。
|
||||
|
||||
<p align="center">
|
||||
<img src="images/TcUo2fw.png">
|
||||
<img src="../../images/TcUo2fw.png">
|
||||
<br/>
|
||||
<strong><a href="https://www.infoq.com/presentations/Twitter-Timeline-Scalability">Source: Twitter timelines at scale</a></strong>
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user