李锋镝的博客

  • 首页
  • 时间轴
  • 评论区显眼包🔥
  • 左邻右舍
  • 博友圈
  • 关于我
    • 关于我
    • 另一个网站
    • 我的导航站
    • 网站地图
    • 赞助
  • 留言
  • 🚇开往
Destiny
自是人生长恨水长东
  1. 首页
  2. 网络
  3. 正文

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

2025年9月18日 134点热度 0人点赞 0条评论

要理解 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

相关文章

  • 应用型负载均衡(ALB)和网络型负载均衡(NLB)区别
  • OSI模型及代表协议详解
  • 深入解析 localhost 与 127.0.0.1:不止于“本地访问”的技术细节
  • 为什么说不可信的Wi-Fi不要随便连接?
  • Linux临时启用swap交换空间
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: ALB NLB 网络
最后更新:2025年10月13日

李锋镝

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

打赏 点赞
< 上一篇

文章评论

1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 57 58 60 61 62 63 64 65 66 67 69 72 74 76 77 78 79 80 81 82 85 86 87 90 92 93 94 95 96 97 98 99
取消回复

寻寻觅觅,冷冷清清,凄凄惨惨戚戚。乍暖还寒时候,最难将息。三杯两盏淡酒,怎敌他、晚来风急!雁过也,正伤心,却是旧时相识。
满地黄花堆积,憔悴损,如今有谁堪摘?守着窗儿,独自怎生得黑!梧桐更兼细雨,到黄昏、点点滴滴。这次第,怎一个愁字了得!

那年今日(01月25日)

  • 1979年:中国左翼文学运动开创者之一郑伯奇逝世
  • 1949年:日本帝国时期的政治家牧野伸显逝世
  • 1924年:第一届奥林匹克冬季运动会在夏蒙尼开幕
  • 1911年:中国第一部专门刑法典颁布
  • 1504年:意大利艺术家米开朗基罗完成大卫雕像
  • 更多历史事件
最新 热点 随机
最新 热点 随机
AI时代,个人技术博客的出路在哪里? 什么是Meta Server? 千万级大表新增字段实战指南:告别锁表与业务中断 在 SQL 中做范围查询时,使用 BETWEEN AND 和直接用 >/=/ 深度解析 Disruptor:无锁队列的高性能实现与实践 精通Linux根目录:核心文件夹深度解析与实战指南
玩博客的人是不是越来越少了?准备入手个亚太的ECS,友友们有什么建议吗?AI时代,个人技术博客的出路在哪里?使用WireGuard在Ubuntu 24.04系统搭建VPNWordPress实现用户评论等级排行榜插件WordPress网站换了个字体,差点儿把样式换崩了
基于Java8的Either类 居家办公了~ 祝大家六一儿童节快乐~~~ IntelliJ IDEA 2020.3.x永久白嫖(Windows/Mac) 看病难~取药难~~ 睡觉睡不踏实
标签聚合
WordPress K8s 分布式 AI编程 多线程 设计模式 JAVA ElasticSearch Redis SpringBoot JVM SQL AI docker IDEA 架构 MySQL 日常 数据库 Spring
友情链接
  • Blogs·CN
  • Honesty
  • Mr.Sun的博客
  • 临窗旋墨
  • 哥斯拉
  • 彬红茶日记
  • 志文工作室
  • 懋和道人
  • 搬砖日记
  • 旧时繁华
  • 林羽凡
  • 瓦匠个人小站
  • 皮皮社
  • 知向前端
  • 蜗牛工作室
  • 韩小韩博客
  • 风渡言

COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.

域名年龄

Theme Kratos Made By Dylan

津ICP备2024022503号-3

京公网安备11011502039375号