Skip to content

从 0 到 1 学习负载均衡

一套面向零基础小白的中文负载均衡系统教程——用银行叫号、超市收银、外卖派单等生活例子,把晦涩的 L4/L7、一致性哈希、会话粘性、健康检查讲清楚,让你看完能画图、能选型、能避坑、面试能答。

status level license


✨ 教程亮点

  • 📚 10 章正文 + 2 个附录:从「为啥要负载均衡」到 Nginx / HAProxy / 云 LB / K8s / 服务网格
  • 🍞 生活化类比贯穿全文:大堂经理叫号、快递分拣中心、VIP 专属客服、队最短优先……
  • 🎮 交互演示03_algorithms/demo.html 可直观对比轮询 / 加权 / 最少连接 / 一致性哈希
  • 💻 可跑代码code/ 目录用 Python 手写 5 种调度算法,零依赖,复制即跑
  • 💼 80+ 道面试题interview.md 按主题汇总,带标准答案与易错点
  • 🔗 与 Nginx 教程衔接:实现细节见 front/nginx/06_load_balance

🗺 章节导航

#章节一句话
0学习计划3 周入门 / 6 周进阶路线
1负载均衡是什么单点 → 集群,第一性原理
2架构与分层L4 vs L7、DNS / 硬件 / 软件 LB
3调度算法大全轮询、加权、最少连接、一致性哈希……
4健康检查主动 vs 被动、探活、熔断
5会话与粘性Cookie、IP Hash、无状态改造
6软件负载均衡实战Nginx、HAProxy、APISIX 选型
7云原生与 K8sCLB/ALB、Ingress、Service
8常见踩坑重试风暴、雪崩、脑裂
9综合实战电商大促、秒杀、微服务网关
A面试题速查大厂高频题 + 标准答法
B术语速查表中英文对照 + 一句话记忆

🚀 快速开始(5 分钟)

第 1 步:跑算法模拟器

bash
cd /path/to/learnNote/backend/loadblance

# 对比 5 种算法如何分发 20 个请求
python3 code/lb_simulator.py --algorithm round_robin
python3 code/lb_simulator.py --algorithm weighted_round_robin
python3 code/lb_simulator.py --algorithm least_connections
python3 code/lb_simulator.py --algorithm ip_hash --client-ip 192.168.1.100
python3 code/lb_simulator.py --algorithm consistent_hash --key user-42

第 2 步:打开可视化 demo

浏览器打开 03_algorithms/demo.html,点不同算法按钮,看请求如何落到 4 台后端。

第 3 步:从第 1 章开始读

建议顺序:01_intro02_architecture03_algorithms,这三章构成「负载均衡最小知识闭环」。


📌 与周边教程的关系

                    ┌─────────────────┐
                    │  本教程(概念层)  │  ← 你在这里
                    │  算法 / 架构 / 选型│
                    └────────┬────────┘

         ┌───────────────────┼───────────────────┐
         ▼                   ▼                   ▼
  front/nginx/06      backend/miniRPC/      linux/op/05_epoll
  Nginx 配置实战       服务发现 + RPC LB      高并发 I/O 底座
  • 想配 Nginx:概念看完本章,配置细节去 Nginx 第 06 章
  • 想懂微服务:本章第 7 章 + miniRPC 服务发现
  • 想懂高并发:本章 + Linux epoll 系列

🎯 学完你能做什么

  1. 向非技术人员解释:「负载均衡就像银行大堂经理,把客户引到空闲柜台」
  2. 画架构图:标出 L4/L7、健康检查、会话层、后端池
  3. 选型:轮询还是最少连接?Nginx 还是云 CLB?要不要上服务网格?
  4. 避坑:重试导致重复下单、健康检查误杀、哈希漂移
  5. 面试:覆盖「四层七层区别」「一致性哈希」「熔断降级」「K8s Service 类型」等高频题

一句话:负载均衡不是「把请求平均分」,而是在多台机器之间做聪明调度——既要快、又要稳、还要能扛住某台机器突然挂掉。