这个项目能做什么
该仓库是一个精选链接集合,用于学习系统设计和准备系统设计面试。它不包含原创软件,而是整理了免费文章、视频、课程、书籍、通讯、工程博客文章和分布式系统论文。
主要部分包括:
- 核心概念:可扩展性、可用性、可靠性、单点故障、延迟与吞吐量、一致性哈希、CAP定理、故障转移、容错性。
- 网络基础:OSI模型、IP地址、DNS、代理与反向代理、HTTP/HTTPS、TCP与UDP、负载均衡、校验和。
- API基础:API、API网关、REST与GraphQL、WebSocket、Webhook、幂等性、速率限制、API设计。
- 数据库基础:ACID事务、SQL与NoSQL、索引、分片、复制、扩展、数据库类型、布隆过滤器、架构。
- 缓存基础:缓存基础、策略、驱逐策略、分布式缓存、CDN。
- 异步通信:发布/订阅、消息队列、变更数据捕获。
- 分布式系统与微服务:心跳、服务发现、共识算法、分布式锁、流言协议、断路器、灾难恢复、分布式追踪。
- 架构模式:客户端-服务器、微服务、无服务器、事件驱动、点对点。
- 系统设计权衡:垂直扩展与水平扩展、并发与并行、长轮询与WebSocket、批处理与流处理、有状态与无状态、一致性模型、缓存策略、推送与拉取、REST与RPC、同步与异步、延迟与吞吐量。
- 面试准备:回答系统设计面试问题的框架,以及分类练习题(简单、中等、困难),如URL缩短器、WhatsApp、Instagram、Uber、Google Docs、Dropbox和分布式存储。
- 额外资源:课程、通讯、书籍、YouTube频道、必读工程文章和经典分布式系统论文(Paxos、MapReduce、GFS、Dynamo、Kafka、Spanner、Bigtable、ZooKeeper、LSM-Tree、Chubby)。
该仓库对准备系统设计面试或希望理解大规模分布式系统概念的软件工程师来说,是一个有用的学习路线图和参考索引。
评论
0 评分人数达到10人后显示
登录后参与讨论。