系统设计入门

推荐一个开源的学习文档集,系统设计入门。

地址:https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md

这个教程非常详细,尤其是图画的非常清晰,比如

系统设计入门

目的

学习如何设计大型系统。

为系统设计的面试做准备。

学习如何设计大型系统

学习如何设计可扩展的系统将会有助于你成为一个更好的工程师。

系统设计是一个很宽泛的话题。在互联网上,关于系统设计原则的资源也是多如牛毛。

这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统。

从开源社区学习

这是一个不断更新的开源项目的初期的版本。

欢迎贡献!

为系统设计的面试做准备

在很多科技公司中,除了代码面试,系统设计也是技术面试过程

中的一个必要环节

内容包括:

面试准备的其他主题:

  • 学习指引
  • 如何处理一个系统设计的面试题
  • 系统设计的面试题,含解答
  • 面向对象设计的面试题,含解答
  • 其它的系统设计面试题
  • 系统设计主题:从这里开始第一步:回顾可扩展性的视频讲座
  • 第二步:回顾可扩展性的文章
  • 接下来的步骤
  • 性能与拓展性
  • 延迟与吞吐量
  • 可用性与一致性CAP 理论CP - 一致性和分区容错性
  • AP - 可用性和分区容错性
  • 一致模式弱一致性
  • 最终一致性
  • 强一致性
  • 可用模式故障切换
  • 复制
  • 域名系统
  • CDNCDN 推送
  • CDN 拉取
  • 负载均衡器工作到备用切换(Active-passive)
  • 双工作切换(Active-active)
  • 四层负载均衡
  • 七层负载均衡
  • 水平扩展
  • 反向代理(web 服务器)负载均衡与反向代理
  • 应用层微服务
  • 服务发现
  • 数据库关系型数据库管理系统(RDBMS)Master-slave 复制集
  • Master-master 复制集
  • 联合
  • 分片
  • 非规范化
  • SQL 调优
  • NoSQLKey-value 存储
  • 文档存储
  • 宽列存储
  • 图数据库
  • SQL 还是 NoSQL
  • 缓存客户端缓存
  • CDN 缓存
  • Web 服务器缓存
  • 数据库缓存
  • 应用缓存
  • 数据库查询级别的缓存
  • 对象级别的缓存
  • 何时更新缓存缓存模式
  • 直写模式
  • 回写模式
  • 刷新
  • 异步消息队列
  • 任务队列
  • 背压机制
  • 通讯传输控制协议(TCP)
  • 用户数据报协议(UDP)
  • 远程控制调用协议(RPC)
  • 表述性状态转移(REST)
  • 安全
  • 附录2 的次方表
  • 每个程序员都应该知道的延迟数
  • 其它的系统设计面试题
  • 真实架构
  • 公司的系统架构
  • 公司工程博客
  • 正在完善中
  • 致谢
  • 联系方式
  • 许可

我感觉有的看了


分享到:


相關文章: