我想在弹性负载均衡中解决我的网络负载均衡器的粘性问题。
简短描述
粘性或会话关联性在会话持续时间内将客户端路由到同一个目标。网络负载均衡器的粘性在目标组级别激活,粘性值为 source_ip。有关详细信息,请参阅粘性会话。
以下是网络负载均衡器出现粘性问题的可能原因:
- 不正常的粘性目标。
- 目标已在目标组中注册或注销。
- 在粘性会话期间,跨区域加载处于开启或关闭状态。
- 客户端位于重新映射源 IP 地址的负载均衡器或代理后面。
- 客户端处于移动网络,在 Wi-Fi 和蜂窝数据之间切换。
- 客户端的 DHCP 分配的 IP 地址将在会话期间过期并发生变化。
解决方法
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要解决网络负载均衡器的粘性问题,请完成以下步骤:
检查粘性是否已开启
要检查粘性是否已开启,请使用以下方法之一:
使用 Amazon EC2 控制台
确保您的网络负载均衡器的目标组处于活动状态且粘性配置正确。如果粘性已关闭,请参阅粘性会话中的 To enable sticky sessions using the console(使用控制台启用粘性会话)部分。
**注意:**传输层安全性协议 (TLS) 侦听器不支持粘性。
使用 AWS CLI
要检查您的网络负载均衡器是否已针对粘性进行了配置,请运行以下 describe-target-group-attributes 命令:
$ aws elbv2 describe-target-group-attributes --target-group-arn example-target-group-arn --region example-region
**注意:**将 example-target-group-arn 替换为目标组的 ARN,将 example-region 替换为您的 AWS 区域。
如果您的网络负载均衡器未配置粘性,请运行具有 stickiness.enabled 属性的 modify-target-group-attributes 命令。
检查目标组是否正常
当目标组的运行状态从正常变为不正常时,粘性会被打破。此外,当您关闭跨区域负载均衡时,粘性也可能会被打破。在关闭跨区域负载均衡之前,请确保粘性目标不在与网络负载均衡器的 IP 地址不同的可用区内。要检查网络负载均衡器目标组的运行状况,请使用 Amazon EC2 控制台或运行以下 describe-target-health 命令:
$ aws elbv2 describe-target-health \
--target-group-arn example-target-group-arn
**注意:**将 example-target-group-arn 替换为目标组的 ARN。
相关信息
目标组属性
elbv2