李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 每日心情
  • Now
  • 系列文章
  • 论坛
  • 左邻右舍
    • 左邻右舍
    • 博友圈
  • 留言
    • 留言
    • 走心评论
  • 关于
    • 关于本站
    • 网站地图
    • 网站统计
    • 另一个网站
    • 我的导航站
    • 赞助
  • 🚇开往
!Destiny
惟坚韧者始能遂其志
  1. 首页
  2. 网络
  3. 正文

NLB和ALB结合的场景和优缺点

2025年9月18日 约 2,554 字9 分钟 140 0 0
本文最后更新于 2025年10月13日,距今已 345 天,其中的信息可能已经发生变化,请注意甄别。

要理解 NLB(网络层负载均衡,L4)与 ALB(应用层负载均衡,L7)结合 的场景和优缺点,首先需要明确两者的核心定位差异——NLB 聚焦于 L4(TCP/UDP 协议层) 的高性能流量分发,ALB 聚焦于 L7(HTTP/HTTPS 应用层) 的精细化路由与业务功能,二者结合本质是 “L4 高性能打底 + L7 业务灵活性补位” 的架构设计。

一、先明确:NLB 与 ALB 的核心差异

在分析结合场景前,需先理清两者的核心能力边界,这是“结合”的逻辑基础:

维度 NLB(L4 负载均衡) ALB(L7 负载均衡)
工作层级 网络层(IP + 端口,TCP/UDP) 应用层(HTTP/HTTPS、路径、主机头、Cookie 等)
核心能力 高性能转发、低延迟、跨可用区高可用 路径路由、SSL 卸载、会话保持(Cookie 级)、L7 健康检查
适用流量类型 所有 TCP/UDP 流量(如 HTTP、数据库、WebSocket) 仅 HTTP/HTTPS 流量(或基于 HTTP 的协议)
性能特点 支持百万级并发连接,转发延迟微秒级 并发能力低于 NLB,转发延迟略高(需解析应用层信息)
健康检查方式 L4 级(TCP 端口通断、ICMP ping) L7 级(HTTP 响应码、响应内容匹配)

二、NLB + ALB 结合的典型场景

当业务同时满足 “高性能/高并发需求” 和 “L7 精细化业务需求” 时,单独使用 NLB 或 ALB 均存在短板,此时二者结合成为最优解。以下是核心场景:

1. 大型互联网应用:高并发 + 多业务模块路由

场景描述:电商平台、短视频 App、大型官网等,高峰期需承载百万级并发,且后端拆分为多个业务模块(如商品详情、购物车、支付、用户中心),需按 URL 路径分发流量。
为什么需要结合:

  • 单独 NLB 不足:仅能按“IP + 端口”转发,无法区分 /product(商品)、/pay(支付)等路径,无法将不同模块流量路由到对应后端集群。
  • 单独 ALB 不足:在高峰期(如双 11),ALB 的并发能力可能成为瓶颈(多数 ALB 并发上限低于 NLB),无法扛住超大流量冲击。
    结合逻辑:
    客户端流量 → NLB(L4 层,抗高并发,跨可用区分发)→ 多台 ALB(每台 ALB 负责一个或多个业务模块,如 ALB1 处理商品,ALB2 处理支付)→ 后端业务集群。
    示例:AWS 电商平台用 NLB 作为入口扛住峰值流量,再转发到不同 ALB 处理“商品搜索”“订单提交”等细分场景。

2. 微服务架构:多服务隔离 + 横向扩展

场景描述:微服务架构下,后端有数十个微服务(如用户服务、订单服务、库存服务),每个服务需独立的流量入口、SSL 证书和路由规则,且需支持服务实例的动态扩缩容。
为什么需要结合:

  • NLB 负责“入口收敛”:将外部流量统一接入 NLB,避免为每个微服务暴露独立入口(减少攻击面),同时 NLB 支持动态更新目标组(ALB 集群扩缩容时自动适配)。
  • ALB 负责“服务隔离”:每个微服务对应一个 ALB(或 ALB 中的一个目标组),ALB 可针对该服务配置专属 SSL 卸载(如支付服务用 EV 证书)、L7 健康检查(如检查 /health 接口返回 200)。
    结合逻辑:
    客户端 → NLB(统一入口,负载到 ALB 集群)→ 各 ALB(绑定不同微服务,如 ALB-User 对应用户服务)→ 微服务实例。

3. 跨可用区/跨区域部署:高可用 + 就近访问

场景描述:业务部署在多个可用区(AZ)或跨区域,需保证“单 AZ 故障不影响服务”,且让用户流量优先转发到就近的 AZ,降低延迟。
为什么需要结合:

  • NLB 支持跨 AZ 转发:多数云厂商的 NLB(如 AWS NLB、阿里云 SLB 四层)可跨 AZ 部署,当一个 AZ 的 ALB 故障时,NLB 自动将流量切换到其他 AZ 的 ALB,实现全局高可用。
  • ALB 负责 AZ 内精细路由:每个 AZ 内部部署 ALB,处理该 AZ 内的服务流量,避免跨 AZ 转发带来的延迟(NLB 仅在 AZ 故障时跨 AZ 切换)。
    结合逻辑:
    用户 → NLB(跨 AZ 负载,优先转发到就近 AZ)→ AZ 内 ALB → 该 AZ 的后端服务。

4. 混合流量场景:HTTP 与非 HTTP 流量共存

场景描述:业务同时对外提供 HTTP 服务(如 Web 页面)和非 HTTP 的 TCP 服务(如 MySQL 只读库、WebSocket 长连接、MQ 集群),需统一入口且分开处理不同流量。
为什么需要结合:

  • NLB 支持多协议:可同时处理 HTTP(转发到 ALB)和 TCP(直接转发到后端服务,如 MySQL)流量,实现“一口多能”。
  • ALB 专注 HTTP 优化:将 HTTP 流量交给 ALB 处理,利用其 SSL 卸载、路径路由等功能;非 HTTP 流量由 NLB 直接转发,减少中间层延迟。
    结合逻辑:
    用户流量 → NLB(按端口区分:80/443 转发到 ALB,3306 转发到 MySQL 只读库)→ ALB(处理 HTTP)/ 后端 TCP 服务。

三、NLB + ALB 结合的优点

二者结合的核心价值是 “扬长避短”,将 L4 的性能与 L7 的灵活性叠加,具体优点如下:

1. 性能与灵活性兼顾

  • NLB 扛高并发:解决 ALB 在超大流量下的性能瓶颈,支持百万级并发连接和每秒数十万请求(RPS),满足秒杀、直播等峰值场景。
  • ALB 做精细控制:实现路径路由(如 /api/v1 转发到新服务,/api/v2 转发到旧服务)、基于主机头的虚拟主机(如 a.example.com 和 b.example.com 共用一个入口)、会话保持(如用户登录后固定转发到同一后端实例)。

2. 高可用与扩展性更强

  • 多层高可用:NLB 跨 AZ 部署,ALB 集群内多实例部署,形成“NLB 级 + ALB 级 + 后端服务级”的三层冗余,单节点故障不影响整体服务。
  • 动态扩展适配:后端服务实例扩缩容时,仅需更新 ALB 的目标组;ALB 集群扩缩容时,仅需更新 NLB 的目标组,无需修改客户端配置(入口 IP 不变)。

3. 功能叠加与安全增强

  • 功能互补:NLB 提供静态公网 IP(便于 DNS 解析和防火墙配置)、客户端 IP 透传(后端服务可获取真实用户 IP);ALB 提供 SSL 卸载(减少后端服务 CPU 消耗)、L7 健康检查(比 L4 更精准,避免“端口通但服务挂”的问题)、WAF 集成(防御 SQL 注入、XSS 等 L7 攻击)。
  • 安全分层:NLB 作为外层屏障,可过滤 L4 级攻击(如 TCP 洪水攻击);ALB 作为内层屏障,通过 WAF 防御 L7 级攻击,形成“多层防护”。

四、NLB + ALB 结合的缺点

结合架构也带来了 复杂度、成本、延迟 等问题,需在设计时权衡:

1. 架构复杂度提升

  • 部署与维护成本高:需同时配置 NLB 和 ALB 的目标组、监听规则、安全组(如 NLB 需允许客户端流量,ALB 需允许 NLB 流量),且需确保两层配置的一致性(如端口映射、SSL 证书有效期)。
  • 故障排查难度大:流量经过两层转发,故障定位需分步骤(先查 NLB 是否转发正常 → 再查 ALB 路由是否正确 → 最后查后端服务),需配套完善的监控(如 NLB 转发成功率、ALB 4xx/5xx 错误率)。

2. 额外延迟开销

  • 虽然 NLB 转发延迟极低(微秒级),但“NLB → ALB”的额外一跳会增加 1~5ms 的延迟(具体取决于网络环境)。对于超低延迟场景(如高频交易、实时游戏),可能需要评估是否可接受。

3. 资源与成本增加

  • 云资源成本:多数云厂商的负载均衡服务按实例/流量收费,两层负载均衡的成本比单层(仅 NLB 或仅 ALB)高 50%~100%(如 AWS NLB + ALB 的组合费用高于单独 ALB)。
  • 计算资源消耗:ALB 集群需占用额外的计算资源(如 CPU、内存),尤其在 SSL 卸载场景下,ALB 的 CPU 消耗会显著增加。

五、总结:适合与不适合的场景

适合结合的场景 不适合结合的场景
高并发(百万级 RPS)+ L7 路由需求(如电商、短视频) 低并发场景(如小型企业官网):单层 ALB 足够,无需额外成本
微服务架构(多服务隔离、动态扩缩容) 纯 TCP/UDP 流量(如数据库代理):仅需 NLB,ALB 多余
跨 AZ/跨区域部署(需高可用 + 就近访问) 超低延迟需求(如高频交易):额外一跳延迟不可接受
混合流量(HTTP + 非 HTTP) 资源预算有限:两层成本过高

总之,NLB + ALB 结合是 “高性能场景下的精细化方案”,核心是用 NLB 解决“流量入口的性能与高可用”,用 ALB 解决“应用层的业务灵活性与安全”,但需承担额外的复杂度和成本。

除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/yun-wei/4507

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
分享到

NLB和ALB结合的场景和优缺点

也可使用浏览器菜单中的「分享」功能

微信扫一扫分享

标签: ALB NLB 网络
最后更新:2025年10月13日

岁月同一天 9 月 24 日

回望过去的今天,你在写什么

  • 文学
    5 年前 2021年9月24日
    玉楼春·尊前拟把归期说

    玉楼春·尊前拟把归期说 欧阳修 〔宋代〕 尊前拟把归期说,欲语春容先惨咽。人生自是有情痴,此恨不关风与月。 离歌且莫翻新…

  • 7 年前 2019年9月24日
    网站SEO(搜索引擎优化)说明及总结

    SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”。SEO是指通过…

  • 7 年前 2019年9月24日
    Xshell 家庭、学校免费版下载

    Xshell功能强大,但是网上一般下载的都是收费的、或者就是破解版的;不过官方提供了针对家庭/学校的免费版,功能是一样的…

相关文章
  • TCP的三次握手与四次挥手2025年2月11日
  • HTTP和HTTPS协议2019年8月15日
  • OSI模型及代表协议详解2025年6月26日
  • 应用型负载均衡(ALB)和网络型负载均衡(NLB)区别2025年6月11日
  • URL地址末尾加不加“/”有什么区别2025年5月23日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
1234567891112131415161718192021222324252627282930313233343536373839404142434446474849505152535455575859606162636465666769727476777879808182858687909293949596979899
取消回复
…

文章评论

还没有评论,快来抢沙发吧~

春未老,风细柳斜斜。试上超然台上看,半壕春水一城花。烟雨暗千家。 寒食后,酒醒却咨嗟。休对故人思故国,且将新火试新茶。诗酒趁年华。

听点儿音乐吧 朋友~
文章目录
最新 热点 随机
最新 热点 随机
Redis7+&8.X 全新进阶系列(02):Redis Functions 详解——替代Lua脚本的官方轻量化函数方案 Redis7.x&8.x 全新进阶系列(01):划时代升级总览——从6.x到7.x/8.x全版本变革全景 让WordPress静态化之Rocket‑Nginx WordPress下一代默认主题Ipsum预览 C++之父重磅发声:AI编程正在毁掉一代程序员 支撑全网40%网站的WordPress正在重新拥抱PHP生态
关于主题加载速度优化的一点儿小演进给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能WordPress缓存插件WP Fastest Cache、WP Rocket 、FlyingPress对比关于使用AI的一些思考WordPress下一代默认主题Ipsum预览Kratos+ v1.1.16版本更新说明
以面试官视角万字解读线程池10大经典面试题 MCP深度解析:从协议本质到实战落地,彻底搞懂 AI 工具交互的标准化方案 分库分表正在被淘汰?NewSQL与分库分表的深度博弈与选型指南 今晚,回家过年! Springboot接入DeepSeek API LiteLLM 本地代理搭建
最近评论
李锋镝 发布于 1 天前(09月22日) 是的,换风格了,不过我觉得之前的年份命名挺好的,一看就知道哪一年的
obaby 发布于 2 天前(09月22日) 我现在是个假的wp了,哈哈哈 wp终于改了主题的命名风格了
李锋镝 发布于 4 天前(09月20日) 静态博客我之前也用过,但是感觉不是很方便,后来就一直用的WordPress
Sheep5 发布于 4 天前(09月20日) 我直接用静态博客,天然有速度优势。
不凡 发布于 4 天前(09月20日) 主要是wordpress插件丰富,需要什么功能插件,插件市场应有尽有,typecho是性能更好、更轻...
标签聚合
ElasticSearch JAVA WordPress 数据库 JVM 日常 AI编程 Theme SpringBoot SQL MySQL Redis K8s 分布式 Claude IDEA Spring AI 架构 多线程
友情链接
  • 林羽凡
  • lijie blog
  • 韩情脉脉
  • 九仞之行
  • 蜗牛工作室
  • sssr7844的博客
  • Honesty
  • Serendipity
  • 志文工作室
  • 老张博客
  • 瓦匠个人小站
  • 懋和道人
  • 皮皮社
  • 知向前端
  • 临窗旋墨
  • 韩小韩博客
  • 搬砖日记
  • 彬红茶日记
  • Mr.Sun的博客
  • 哥斯拉

COPYRIGHT © 2016-2026 lifengdi.com. ALL RIGHTS RESERVED.

lifengdi.com

Domain age badge for lifengdi.com

Theme Kratos-plus By Dylan Li

津ICP备2024022503号-3

京公网安备11011502039375号