**发布时间:** 2025-11-19
**厂商:** AWS
**类型:** BLOG
**原始链接:** https://aws.amazon.com/blogs/networking-and-content-delivery/network-load-balancers-now-support-weighted-target-groups/
---
<!-- AI_TASK_START: AI标题翻译 -->
[新产品/新功能] Network Load Balancer 现已支持加权目标组
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 产品功能分析
## 新功能/新产品概述
AWS **网络负载均衡器 (Network Load Balancers, NLB)** 现已支持 **加权目标组 (Weighted Target Groups)** 功能。该功能允许用户为单个 **NLB 侦听器 (Listener)** 关联的多个 **目标组 (Target Group)** 配置静态权重,从而精确控制新流量在不同后端服务集群间的分配比例。
- **核心定义与目标**: 此功能的核心是为每个目标组分配一个 `0` 到 `999` 之间的整数权重。**NLB** 会根据这些权重的相对比例来路由新的 **TCP**、**UDP** 或 **TLS** 流量。其主要目标是简化高级部署策略(如蓝绿部署、金丝雀发布)的实现,并支持零停机维护,而无需配置多个负载均衡器或依赖外部DNS服务。
- **技术原理**: 流量分配逻辑在 **NLB** 的 **侦听器** 层面实现。当一个新的连接请求到达时,**NLB** 会根据预设的权重将该连接流转发至相应的目标组。例如,若目标组A和B的权重均为 `100`,则它们将各接收 `50%` 的新流量。流量分配依然会在所有已配置的 **可用区 (Availability Zone)** 内进行均衡。
- **产品背景与定位**: 在此功能推出前,实现类似流量切换通常需要配置多个 **NLB** 并结合 **Route 53** 的加权路由策略,这不仅增加了架构复杂性和基础设施成本,还可能因 **DNS** 缓存而导致流量切换延迟。**加权目标组** 将流量控制能力下沉到负载均衡层,为需要进行敏捷发布和高可用维护的用户提供了一个更高效、经济且响应迅速的内置解决方案。
- **目标用户群**: 需要实施零停机部署、A/B测试或对后端服务进行滚动维护的DevOps工程师、系统架构师及应用开发者。
## 关键客户价值
- **简化高级部署模式,降低发布风险**
- **业务价值**: 用户无需管理复杂的 **DNS** 记录或部署多个 **NLB**,即可在单个负载均衡器上轻松实现 **蓝绿部署 (Blue/Green Deployment)** 和 **金丝雀发布 (Canary Deployment)**。通过动态调整权重,可以逐步将流量从旧版本应用(蓝组)迁移至新版本(绿组),从而实现平滑过渡,显著降低发布风险并加速迭代周期。
- **差异化优势**: 与传统的 **Route 53** 加权路由方案相比,此功能在 **NLB** 层直接控制流量,避免了 **DNS** 缓存刷新延迟(TTL)问题,使得流量切换的生效时间更短(文档提及*最长3分钟*),控制更为精确和实时。
- **降低基础设施成本与运维开销**
- **业务价值**: 通过让多个应用版本或服务集群共享同一个 **NLB**,显著减少了所需的负载均衡器实例数量,直接降低了基础设施成本。同时,所有流量策略均通过统一的 **NLB** 控制台、**API** 或 **CLI** 进行管理,简化了配置和监控流程,减轻了运维团队的负担。
- **实现机制**: 该功能将流量分配逻辑内置于 **NLB** 的 **转发规则 (Forwarding Rule)** 中,替代了原先依赖外部服务(如DNS)的架构,实现了架构的精简和成本的优化。
- **实现无缝的零停机维护**
- **业务价值**: 当需要对某个目标组内的服务器进行维护、打补丁或缩容时,可将其权重动态调整为 `0`。**NLB** 将立即停止向该目标组分发新的连接请求,而已建立的连接则不受影响(取决于具体协议和配置)。这使得后端服务的维护操作可以平滑进行,完全不影响整体服务的可用性。
- **场景体现**: 此功能在微服务架构中尤为重要,允许团队对单个微服务进行独立更新或修复,而不会对其他服务或用户体验造成任何干扰。
## 关键技术洞察
- **第四层(L4)的加权流量控制**
- **技术独特性**: _该功能在 OSI 模型的第四层(传输层)实现了加权流量分发_。与应用层负载均衡器(ALB)基于HTTP请求头或路径进行路由不同,**NLB** 直接基于 **TCP/UDP** 连接流进行加权分配。这使得它能够保持极高的性能和超低延迟的特性,适用于对性能要求严苛的场景。
- **工作原理**: 其底层实现结合了 **流哈希算法 (Flow Hash Algorithm)** 与权重比例。当一个新连接到达时,**NLB** 会根据源IP、源端口、目标IP、目标端口和协议等五元组信息计算哈希值,并结合目标组的权重配置来决定将此连接流转发到哪个目标组。
- **与监控诊断工具的深度集成**
- **技术创新点**: 新功能将 **Amazon CloudWatch** 的监控指标进行了扩展,使其能够细分到目标组维度。现有的关键指标,如 `NewFlowCount` (新建连接数) 和 `ActiveFlowCount` (活跃连接数),现在可以按目标组进行筛选和对比。
- **影响**: 这种精细化的监控能力极大地提升了部署过程的 **可观测性 (Observability)**。工程师可以实时、量化地验证流量是否按预期权重分配,从而快速确认部署策略的执行效果或定位潜在问题。
- **内置的配置有效性评估工具**
- **技术独特性**: AWS 控制台提供了一个名为 **加权路由评估 (Weighted Routing Evaluation)** 的辅助功能。
- **工作原理**: 此工具能主动分析用户的权重配置、目标实例在各可用区的分布情况以及 **跨区域负载均衡 (Cross-Zone Load Balancing)** 的设置。它能帮助用户在流量切换前识别潜在的配置不一致问题,例如,当禁用跨区域负载均衡时,若各可用区内的目标实例数量不均,可能导致实际流量分配与权重设置出现偏差。这是一种前置的、预防性的风险管理机制,提升了配置的可靠性。
## 其他信息
- **配置约束与注意事项**
- **协议一致性**: 在同一个侦听器下配置的所有加权目标组,其协议必须保持一致。例如,不能将一个 **TCP** 目标组和一个 **TLS** 目标组混合进行加权。
- **IP版本一致性**: 所有参与加权的目标组必须使用相同的IP协议版本,即全部为 **IPv4** 或全部为 **IPv6**。
- **会话保持 (Stickiness)**: 该功能支持为 **TCP**、**UDP** 和 **TCP_UDP** 侦听器启用会话保持。此设置在侦听器级别配置,并应用于其下的所有目标组。启用后,来自同一客户端的后续连接将被持续定向到最初选定的目标实例,即使目标组的权重发生变化。该功能默认关闭。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 网络负载均衡器现已支持加权目标组
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/network-load-balancers-now-support-weighted-target-groups/](https://aws.amazon.com/blogs/networking-and-content-delivery/network-load-balancers-now-support-weighted-target-groups/)
**发布时间:** 2025-11-19
**厂商:** AWS
**类型:** BLOG
---
# 引言
今天,Amazon Web Services (AWS) 宣布为 [网络负载均衡器 (Network Load Balancers, NLB)](https://aws.amazon.com/elasticloadbalancing/network-load-balancer/) 推出加权目标组 (weighted target groups) 功能。该功能允许用户在多个 NLB 目标组之间配置静态权重。通过加权目标组,您可以轻松实现蓝/绿部署或金丝雀部署策略,且无需停机,也无需使用多个负载均衡器。此功能现已在所有商业区域 (包括 GovCloud 区域) 的新建和现有 NLB 上可用。
在此功能推出之前,用户需要配置多个带有独立目标组的 NLB,并在 Route 53 中管理权重。加权目标组可以帮助您降低基础设施成本和运维开销。
用户可以为每个 NLB 目标组分配一个 0 到 999 之间的数字权重。流量将继续在所有已配置的可用区 (Availability Zones) 之间分配,但现在会受到权重指标的影响。

图 1: 使用等权重目标组的 NLB
在图 1 所示的示例中,目标组 A 和 B 通过各配置 25 的相等权重,来接收等量的流量。目标组权重可配置为 0 – 999 之间的有效整数。如果每个目标组包含三个 Amazon EC2 实例,那么每个实例将处理大约 16.66% 的总负载 (50% / 3 个实例)。
# 前提条件
本文假设您已熟悉 NLB 及其组件 [目标组 (target groups)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html) 和 [侦听器 (listeners)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) 。
# 使用场景
### **1) 蓝/绿部署**
如果您在蓝/绿部署中维护多个版本的应用程序,现在可以使用 NLB 加权目标组来引导它们之间的流量。

图 2: 目标组权重详情
要修改每个目标组的权重,请使用 [AWS 管理控制台 (AWS Management Console)](https://console.aws.amazon.com/) 、NLB ModifyListener API 或 [AWS 命令行界面 (AWS Command Line Interface, AWS CLI)](https://aws.amazon.com/cli/) 。
```bash
aws elbv2 modify-listener \
--listener-arn <Listener ARN> \
--protocol TCP \
--port 443 \
--default-actions '[{
"Type": "forward",
"ForwardConfig": {
"TargetGroups": [{
"TargetGroupArn": "<Target Group Blue ARN>",
"Weight": 0
},
{
"TargetGroupArn": "<Target Group Green ARN>",
"Weight": 100
}]
}
}]'
```
在最多 3 分钟的短暂延迟后,新流量将从“蓝色”目标组转移到“绿色”目标组。
### **2) 执行目标组维护**
如果您的应用程序被拆分到多个目标组,您可以调整目标组的权重,以便对一部分计算实例进行维护。在此示例中,流量通过相等的权重分配到三个目标组。

图 3: 等权重的目标组
要对 NLB-WTG-1-IPv6 目标组中的实例进行维护,请将该组的权重调整为零,这样它就不会接收新流量。
权重调整后:

图 4: 流量从三个目标组转移到两个
虽然权重整数 33 保持不变,但 66 的总权重现在只在两个组之间分配,从而实现了 50% 的流量分配。您可以通过检查带有 TargetGroup 维度的 NewFlowCount [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 指标来验证流量。

图 5: CloudWatch NewFlowCount 指标使用 TargetGroup 维度显示数据
图 5 展示了三个权重相等的目标组。随着时间的推移,请求在所有三个目标组之间的分配变得更加均匀。

图 6: 将一个目标组移出服务后,两个目标组平分负载
图 6 展示了将其中一个目标组的权重设置为零的结果。请求继续在其余两个活动目标组之间均衡分配。
# 注意事项
### 侦听器类型
每个包含加权目标组的侦听器,其目标组必须仅包含一种协议。单个侦听器不能同时包含 TCP 和 TLS 加权目标组。例如,使用 TLS 侦听器的蓝/绿部署必须包含全部为 TLS 或全部为 TCP 的目标组。“蓝色”的 TCP 目标组不能与“绿色”的 TLS 目标组一起加权。
### 粘性
加权目标组支持 TCP、UDP 和 TCP_UDP 侦听器的粘性 (Stickiness)。粘性设置在侦听器级别的负载均衡器详情中配置,并适用于与该侦听器关联的所有目标组。默认情况下,粘性未启用。
### 混合 IP 地址类型
在撰写本文时,一个 NLB 侦听器必须包含具有相同互联网协议版本的加权目标组,即全部为 IPv4 或全部为 IPv6。
# 监控
随着加权目标组的推出,现有的 NLB CloudWatch 指标也得到了支持:NewFlowCount、NewFlowCount_TCP、NewFlowCount_TLS、NewFlowCount_UDP、ActiveFlowCount、ActiveFlowCount_TCP、ActiveFlowCount_TLS 和 ActiveFlowCount_UDP。这些现有指标现在可以按每个目标组进行查看,以比较目标组之间的流量计数。通过比较不同目标组的新建和活动流量计数,可以确定目标组之间的有效流量权重。
# 加权路由评估
使用位于侦听器详情控制台页面中的加权路由评估 (weighted routing evaluation) 功能,可以评估目标分配和详细的跨区域设置。此功能有助于识别不一致的情况,例如每个负载均衡器区域中的目标数量不相等,如果禁用了跨区域负载均衡 (cross-zone load balancing),这种情况会影响已配置的目标组权重。

图 7: NLB 控制台中的加权路由评估功能
在下面的图 8 中,我有三个目标组,每个可用区中有一个目标。由于跨区域负载均衡已启用,这仍然是一个有效的配置。

图 8: 加权路由评估结果
# 结论
使用加权目标组可以提高向 NLB 目标组引导流量的灵活性。无论您是支持蓝/绿部署、金丝雀部署,还是以自定义方式分配流量,都可以立即创建一个加权目标组来尝试您的使用场景。要开始使用加权目标组,请访问[控制台的目标组部分](https://us-east-1.console.aws.amazon.com/ec2/home?region=us-east-1#TargetGroups:) 或查看[加权目标组文档](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/listener-update-rules.html) 。
<!-- AI_TASK_END: AI全文翻译 -->