主题
从 0 到 1 学习负载均衡 · 总学习计划
本计划是后续 10 章正文 + 2 个附录的「施工图」。零基础友好,每天 1~1.5 小时,3 周可入门,6 周可进阶。
📌 教程总目标
完成本教程后,你应当具备以下能力:
- 能解释:用生活类比向产品 / 测试 / 新人讲清「什么是负载均衡、为什么需要、放在哪一层」
- 能选型:根据场景选 L4 还是 L7、轮询还是最少连接、软件 LB 还是云 LB
- 能配置:读懂 Nginx
upstream、HAProxybackend、K8sService/Ingress的核心字段 - 能排障:健康检查误杀、会话丢失、重试风暴、哈希漂移——知道症状与根因
- 能答题:覆盖后端 / 架构 / SRE 方向负载均衡高频面试题
一、章节总表
| # | 章节 | 核心知识点 | 生活类比 | 实战 / 代码 | 预计字数 |
|---|---|---|---|---|---|
| 1 | 负载均衡是什么 | 单点瓶颈、水平扩展、可用性、CAP 直觉 | 一家银行只有一个柜台 | 无 | 3500 |
| 2 | 架构与分层 | L4/L7、DNS LB、硬件 LB、软件 LB、客户端 LB | 快递分拣:按邮编 vs 按包裹内容 | 架构图手绘练习 | 4500 |
| 3 | 调度算法大全 | RR、WRR、LC、WLC、IP Hash、一致性哈希、随机、最短响应 | 叫号、队最短、VIP 专属客服 | lb_simulator.py + demo.html | 5500 |
| 4 | 健康检查 | 主动/被动探活、TCP/HTTP 检查、熔断、优雅下线 | 医生体检 vs 病人来了才发现发烧 | curl 探活脚本 | 4000 |
| 5 | 会话与粘性 | Sticky Session、Cookie、无状态、JWT、Redis Session | 固定专属客服 vs 前台只认工牌 | Session 改造 checklist | 4000 |
| 6 | 软件 LB 实战 | Nginx、HAProxy、Traefik、APISIX 对比与配置要点 | 不同风格的大堂经理 | 指向 nginx/06 章节 | 5000 |
| 7 | 云原生与 K8s | CLB/ALB/NLB、Ingress、Service、EndpointSlice、Istio | 物业前台 + 楼栋管家 | k8s yaml 解读 | 5000 |
| 8 | 常见踩坑 | 重试非幂等、雪崩、热点、脑裂、慢启动 | 一个柜台倒了大家全涌过去 | 踩坑对照表 | 4500 |
| 9 | 综合实战 | 电商大促、秒杀、API 网关、多机房 | 双十一收银台扩容 | 端到端案例 | 5000 |
| A | 面试题速查 | 80+ 题按主题索引 | — | interview.md | 6000 |
| B | 术语速查表 | 中英文 + 一句话记忆 | — | appendix_glossary.md | 2000 |
合计:正文 ≈ 4 万字 + Python 模拟器 + 1 个交互 demo + 面试题集。
二、学习路径建议
🚀 3 周入门路线(覆盖 80% 日常场景)
| 周 | 章节 | 每天投入 | 学完达成 |
|---|---|---|---|
| 第 1 周 | 第 1、2、3 章 | 1 h | 能画 L4/L7 架构图,能说出 5 种算法及适用场景 |
| 第 2 周 | 第 4、5、6 章 | 1 h | 能配置 Nginx upstream,理解健康检查与会话粘性 |
| 第 3 周 | 第 7、8 章 + 附录 A 选读 | 1 h | 能读懂 K8s Service,避开 5 个最常见坑 |
🎓 6 周进阶路线(架构 / 面试向)
在入门路线基础上增加:
| 周 | 内容 |
|---|---|
| 第 4 周 | 第 9 章综合实战 + 精读 front/nginx/06_load_balance |
| 第 5 周 | 云厂商文档(腾讯云 CLB / AWS ALB)+ K8s Ingress 动手 |
| 第 6 周 | 附录 A 面试题全部过一遍 + 手绘「从用户到 DB」全链路 |
⚡ 1 天速览路线(已有经验,查漏补缺)
- 读
01_intro§1~§3(30 min) - 读
03_algorithms对比表(20 min) - 跑
lb_simulator.py五种算法(15 min) - 读
08_pitfalls全文(30 min) - 刷
interview.md标记不会的题(60 min)
三、前置知识
| 级别 | 知识 | 没有怎么办 |
|---|---|---|
| 必须 | HTTP 基础(请求/响应、Cookie、状态码) | 先读 front/nginx/01_intro |
| 建议 | Linux 基础、TCP 三次握手 | 不懂也能学,遇到再补 |
| 加分 | Docker、K8s 概念 | 第 7 章会讲,可后补 |
四、练习任务清单
- [ ] 手绘一张图:浏览器 → DNS → L7 LB → 3 台后端,标出健康检查探针
- [ ] 用
lb_simulator.py跑完 5 种算法,记录哪种在「后端处理时间不均」时最公平 - [ ] 读 Nginx
06_load_balance,写出least_conn+keepalive的最小配置 - [ ] 解释:为什么「把 session 放 Redis」比「ip_hash」更好?
- [ ] 模拟面试:用 2 分钟讲清「四层负载均衡和七层有什么区别」
五、灵魂章节(必读)
以下章节构成负载均衡的「最小完备集」,其它章节可略读,但这几章必须精读:
| 优先级 | 章节 | 原因 |
|---|---|---|
| 🔥 P0 | 第 1、2、3 章 | 概念 + 算法 = 一切选型的基础 |
| 🔥 P0 | 第 4、8 章 | 生产事故多出在健康检查与重试 |
| 🟢 P1 | 第 5、6、7 章 | 实战配置与云原生落地 |
| 🔵 P2 | 第 9 章 + 附录 | 综合串联与面试冲刺 |
下一章 → 01 · 负载均衡是什么