CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
构建可扩展系统/课时/可扩展性是什么
RawBlame
课时目录12 节

构建可扩展系统

  1. 01可扩展性是什么
  2. 02CAP 定理
  3. 03无状态服务
  4. 04缓存与读扩展
  5. 05分片策略
  6. 06数据复制
  7. 07N+1 查询问题
  8. 08负载均衡
  9. 09背压与限流
  10. 10负载转移
  11. 11读写分离
  12. 12综合练习

可扩展性是什么

垂直 vs 水平;building-for-scale 节点。

30 分钟

可扩展性是什么

流量上涨时,系统是加机器还是加 CPU?可扩展性(Scalability) 描述系统在负载增长时仍能保持性能与可用性的能力。对应 CodeRoadMap 全栈路线图 的 building-for-scale 节点:从单体走向可水平扩展的后端架构。

学习目标

  • 区分垂直扩展与水平扩展的适用场景与成本曲线
  • 用 QPS、延迟、可用性三个指标描述扩展需求
  • 识别单体应用中常见的扩展瓶颈(数据库、Session、单点)

核心概念

方式做法优点局限
垂直扩展(Scale Up)升级 CPU/内存/磁盘改动小、无分布式复杂度硬件天花板、停机窗口
水平扩展(Scale Out)增加同类实例理论上无上限、故障隔离需要无状态、数据分片与负载均衡

扩展不是免费午餐:水平扩展引入网络延迟、数据一致性与运维复杂度。工程上常见路径是:先垂直撑过早期流量,再在瓶颈明确后拆分无状态层与数据层。

请求 → [LB] → App × N → DB(往往最先成为瓶颈)

单机瓶颈排查顺序:CPU 饱和 → 内存/GC → 磁盘 I/O → 网络 → 下游依赖。后续课程将逐一拆解数据层与流量层的扩展手段。

与路线图

本 track 是 devops 方向的 构建可扩展系统 入口。读完本课,继续 scale-cap 理解分布式取舍;数据层细节见 postgresql-essentials 与 redis-essentials。

练习

  • 画一张你熟悉系统的部署图,标出可能的单点
  • 估算当前服务峰值 QPS 与 P99 延迟,写出第一个会触顶的组件
  • 在路线图中找到 building-for-scale,列出其前后三个关联节点

小结

可扩展性 = 负载增长时仍可控的性能与可用性;垂直救急,水平才是长期路径。

加载本节练习…
下一课 →CAP 定理