通化市网站建设_网站建设公司_API接口_seo优化
2026/1/7 10:49:00 网站建设 项目流程

一、什么是 Load Balancer(负载均衡)

一句话定义:

Load Balancer 位于客户端和后端服务器之间,负责把请求分发到多个后端资源上。

  • 请求(task):浏览器发来的 HTTP / HTTPS 请求

  • 资源(resource):运行应用的 EC2 实例

请求路径

Client Browser → Load Balancer → EC2 Instance → Load Balancer → Client Browser

== 负载均衡器在“请求和响应的路径中”==

二、为什么用 ELB,而不是自己装 Nginx / HAProxy?

Elastic Load Balancing(ELB)的核心优势:

能力ELB
运维✅ 无需维护
高可用✅ 默认多 AZ
自动扩缩✅ 自动适配流量
支持目标EC2 / IP / Lambda / 容器
混合架构✅ 可负载到本地 IP

“不需要你管理、自动高可用、自动扩展”

三、ELB 的三大核心能力

1️⃣ 高可用(High Availability)

  • 必须部署在多个 Availability Zones

  • AWS 自动在多个 AZ 创建负载节点

  • 单 AZ 故障 ≠ 服务不可用

2️⃣ 自动伸缩(Scalability)

自动应对流量突增

不需要你设置实例数量

对客户端是透明的

3️⃣ 健康检查(Health Checks)

健康检查 = ELB 是否继续给某台实例发流量的依据

❌ 错误做法

  • 只检查端口是否打开

  • 只访问 / 首页

✅ 正确做法(强考点)

为应用创建一个:

/monitor

该页面应检查:

  • 是否能访问数据库(如 DynamoDB)

  • 是否能访问 S3

  • 核心依赖是否可用

== 只有通过健康检查的实例,才会接收流量==

四、ELB + Auto Scaling 的协作机制

扩容(Scale Out)

  • Auto Scaling 启动新 EC2

  • ELB 进行健康检查

  • 通过后 → 开始接收流量

故障处理

  • ELB 发现实例不健康

  • 停止向其发送流量

  • 通知 Auto Scaling

  • Auto Scaling 替换实例

缩容(Scale In)& Connection Draining

  • Connection Draining(连接耗尽)

  • 不再接收新连接

  • 等待已有连接结束

  • 再终止实例

防止:用户请求中途被断开

五、ELB 的 3 个核心组件

1️⃣ Listener(监听器)

  • 客户端连接点

定义:

  • 协议(HTTP / HTTPS / TCP / TLS)

  • 端口(80 / 443 / 8080 等)

== 一个 Load Balancer 可以有多个 Listener==

2️⃣ Target Group(目标组)

后端资源集合

可以是:

  • EC2

  • IP 地址

  • Lambda

每个 Target Group 都要定义健康检查

3️⃣ Rules(规则)

把 Listener 的流量路由到 Target Group

基于条件:

  • Path(/upload)

  • Host(api.example.com)

  • Header

  • Source IP

  • Method

六、Application Load Balancer(ALB)

定位:L7(应用层)负载均衡

ALB 的核心能力

1️⃣ 基于 HTTP 内容路由

  • URL path

  • Host

  • Headers

  • Method

  • Query String

  • Source IP

== 非常适合 微服务 / API 网关===

2️⃣ TLS / HTTPS 卸载

  • SSL 证书来自:

    • ACM(推荐,免费)

    • IAM 导入

  • 客户端 ↔ ALB 加密

  • 后端无需处理 TLS

3️⃣ 直接响应客户端

  • Fixed Response(返回 HTML)

  • Redirect(HTTP → HTTPS)

4️⃣ 用户认证

  • OpenID Connect

  • SAML / LDAP / Microsoft AD

  • 在进入后端前完成认证

5️⃣ 路由算法

  • Round Robin(默认)

  • Least Outstanding Requests(重点)

当:

实例性能不同

请求复杂度不一致

使用 Least Outstanding Requests

6️⃣ Sticky Sessions

  • 基于 HTTP Cookie

  • 适用于 有状态应用

7️⃣ 安全

  • 使用 Security Group

  • 控制允许的 IP / 端口

⚠️ ALB 适用范围

✅ HTTP / HTTPS

❌ 不支持 TCP / UDP

七、Network Load Balancer(NLB)

定位:L4(连接层)负载均衡

NLB 的核心能力

1️⃣ 支持协议

  • TCP

  • UDP

  • TLS

不理解 HTTP 内容

2️⃣ 路由算法:Flow Hash

基于:

  • 协议

  • 源 IP / 端口

  • 目标 IP / 端口

  • TCP sequence

条件相同 → 一直发给同一个目标

3️⃣ Sticky Sessions

基于 Source IP

不用 Cookie

4️⃣ TLS 卸载

支持 TLS 终止

但不做 HTTP 层处理

5️⃣ 极高性能

瞬间支持百万级请求

无需预热扩容

6️⃣ IP 地址支持

Static IP

Elastic IP

👉 适用于:

客户端不能用 DNS

防火墙基于 IP 白名单

7️⃣ 保留客户端真实 IP

  • 后端看到的是真实 Client IP

  • ALB 看到的是 Load Balancer IP

八、ALB vs NLB 对比(考试必背)

特性ALBNLB
工作层级L7L4
协议HTTP / HTTPSTCP / UDP / TLS
内容路由
Path / Host 路由
用户认证
Fixed / Redirect
Sticky SessionCookieSource IP
TLS 卸载
静态 IP
保留客户端 IP
极端高吞吐⚠️

九、一句话选型总结(非常重要)

Web / API / 微服务 → ✅ ALB

TCP / UDP / 游戏 / 金融系统 → ✅ NLB

需要静态 IP / 客户端 IP → ✅ NLB

需要 URL / Header 路由 → ✅ ALB

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询