免费 基础串讲 系统设计基础串讲之二 RESTful API 设计 API 设计是系统设计的重要组成部分,其中最常用的 API 设计风格就是 RESTful API。面试中虽然大多数人都能把 API 的大致输入输出说清楚,但也不乏有人或是因为违背了 RESTful 设计原则,或是因为 API 没有写成符合业界标准的格式,而导致失分。下面我们就从设计原则,HTTP 标准格式和设计实战经验总结三方面就来教你如何合理设计 RESTful API。
免费 基础串讲 系统设计基础串讲之一 MySQL 数据库的键和索引 (Key & Index) 数据库设计中除了对需要存储的信息做合理的抽象以外,最重要的就是根据数据特征和查询模式给特定的列加上合适的键或是索引。本文就以 MySQL (InnoDB) 为例,讲解 MySQL 中出现的 Clustered Index, Primary Index, Secondary Index, Unique Index, Composite Index, Foreign Key, Partition Key 和 Sharding Key 都是什么含义,如何挑选合适的列以及数据库内部的实现。
免费 系统设计文本课 Dropbox 云存储服务系统设计题解 Dropbox 是在线文件存储分享服务的代表,它帮助用户随时随地访问存储的文件。它同时方便了不同用户之间的文件分享以及提供追溯文件历史版本的功能。Dropbox 是如何大规模,高性能,高一致性地提供这样服务的呢?这篇4000字题解就来带你探索其中大型分布式系统的搭建,分析从在线存储同步数据流到数据库结构分区等诸多设计要点。
免费 常见取舍 系统设计常见取舍之一 SQL vs NoSQL 系统设计中免不了要提数据库设计,数据库设计又离不开 SQL vs NoSQL 的讨论。看完这篇文章,你将学会一步一步有理有据地锁定合适的数据库技术选型。
免费 系统设计文本课 Google 搜索引擎系统设计题解 Google 作为搜索引擎的标杆,帮助用户发现了互联网上无数的精彩。这道系统面试题着重考察同学对信息索引 (Index) 和查询 (Query) 的理解。这篇6000字题解就来帮你深挖小小的搜索框是如何帮我们从茫茫互联网上找到内容的。
免费 系统设计文本课 Netflix 系统设计题解 Netflix 作为最大的电影电视剧串流平台,大家对旗下电视剧如纸牌屋和怪奇物语也是耳熟能详。它占据了互联网下载流量的12.9%,超过 Youtube 接近一倍。大家有没有好奇 Netflix 是如何支持如此巨大的下载流量的呢?今天我们就来为你揭开它的神秘面纱。
免费 业界大系统 分布式系统协调员 Zookeeper Zookeeper 是一个高性能分布式系统协调服务 (Coordination Service),它采用类似于文件系统的简洁通用的接口,我们可以利用它轻松实现分布式系统同步一类的操作。还在为协调分布式系统而烦恼?今天就教你怎么做个合格的动物园管理员!
免费 系统设计文本课 分布式锁系统设计题解 每当我们在分布式系统中想要寻求一致性,我们都离不开分布式锁。很多面试题里我们会在一致性和可用性之间选择可用性。然而,理解分布式锁能帮我们打破思维定式,体验一致性优先的使用场景并剖析其实现方法。
免费 业界大系统 缓存标杆 Redis 设计赏析 Redis 作为缓存届的招牌,是搭建缓存时的默认选项。它的速度很快,配置选项丰富,是系统设计面试中的系统设计图中的常客。看完这一篇,相信你对 Redis 的功能和设计都会有更深的理解。
免费 系统设计文本课 网络爬虫系统设计题解 (Web Crawler) 爬虫是 Google 搜索的核心组件之一,自从互联网诞生初期就帮助我们整理互联网上的资源,解决了信息发现的难题。今天我们来看看如何设计一款高效的网络爬虫。
免费 系统设计文本课 两周系统设计面试速成大纲 如果你的时间紧迫,希望短时间提高系统设计实力,那么请把这份包含了数十篇共六万字例题精解以及业界大系统赏析的复习大纲好好收藏,信息量极其巨大,干货满满,相信你会有所收获。
免费 业界大系统 缓存鼻祖 Memcached 内核详解 Memcached 是一个高性能分布式缓存系统。它单一的功能和精巧的设计给了我们系统设计面试中回答 Cache 类设计的完美范本。今天我们看看 Memcached 的内部实现。
免费 业界大系统 一篇看懂流处理平台 Kafka Kafka 是一款多功能的流处理平台。它不仅支持传统 Message Broker 的本职工作,更加入信息流存储以及实时处理功能,使其非常灵活和使用。对于这个系统设计面试的重要考点,我们今天就带你一篇看懂 Kafka。
免费 业界大系统 如何实现 Message Broker | RabbitMQ 内核解析 Message Broker 就像信息高速公路,在不同系统之间传递着消息,是很多我们耳熟能详的服务中不可替代的一部分。今天我们就通过解析 RabbitMQ 的内核来理解 Message Broker 的一种实现方法及其应用场景。
免费 业界大系统 Google 经典系统赏析 | GFS, Big Table & MapReduce Google 的三篇经典论文为开源社区同类系统的实现指明了方向,这些开源系统又成为新一代的科技公司系统的重要组成部分。今天我们就来学习这三篇论文,赏析它们的设计之美。