本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置经典负载均衡器的 Connection Draining
要确保经典负载均衡器停止向正在取消注册或运行状况不佳的实例发送请求,并使现有连接保持打开状态,请使用 Connection Draining。这将使负载均衡器能够完成向正在取消注册或运行状况不佳的实例发出的进行中请求。
启用连接耗尽时,您可以指定在将实例报告为已取消注册之前,负载均衡器使连接保持活动状态的最大时间。最大超时值可设置为介于 1 和 3600 秒之间 (默认值为 300 秒)。当达到最大时间限制时,负载均衡器会强制关闭与正在取消注册的实例的连接。
在为进行中请求提供服务时,负载均衡器会将正在取消注册的实例的状态报告为 InService: Instance deregistration currently in
progress
。当正在取消注册的实例为所有进行中请求提供完服务时,或在达到最大超时限制时,负载均衡器会将实例状态报告为 OutOfService: Instance is not currently registered with the
LoadBalancer
。
如果实例运行状况不佳,则负载均衡器会将实例状态报告为 OutOfService
。如果存在向运行状况不佳的实例发出的进行中请求,则会完成这些请求。最大超时限制不适用于与运行状况不佳的实例的连接。
如果您的实例属于 Auto Scaling 组,并且为负载均衡器启用了 Connection Draining,则 Auto Scaling 在由于扩展事件或运行状况检查替换而终止实例之前,将会等待进行中的请求完成或等待最大超时过期。
如果您希望负载均衡器立即关闭与正在取消注册的实例或运行状况不佳的实例的连接,则可以禁用连接耗尽。禁用连接耗尽后,不会完成向正在取消注册的实例或运行状况不佳的实例发出的任何进行中请求。
启用 Connection Draining
您可以随时为负载均衡器启用连接耗尽。
使用控制台启用连接耗尽
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的负载均衡下,选择负载均衡器。
-
选择负载均衡器的名称以打开其详细信息页面。
-
在属性选项卡上,选择编辑。
-
在编辑负载均衡器属性页面的流量配置部分中,选择启用连接耗尽。
-
(可选)对于超时(耗尽间隔时间),键入一个介于 1 到 3600 秒之间的值。如果您不做任何选择,则将使用 300 秒的默认值。
-
选择保存更改。
要启用连接耗尽,请使用 Amazon CLI
使用以下 modify-load-balancer-attributes 命令:
aws elb modify-load-balancer-attributes --load-balancer-name
my-loadbalancer
--load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":true,\"Timeout\":300
}}"
以下为响应示例:
{
"LoadBalancerAttributes": {
"ConnectionDraining": {
"Enabled": true,
"Timeout": 300
}
},
"LoadBalancerName": "my-loadbalancer"
}
禁用 Connection Draining
您可以随时为负载均衡器禁用连接耗尽。
使用控制台禁用连接耗尽
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格上的负载均衡下,选择负载均衡器。
-
选择负载均衡器的名称以打开其详细信息页面。
-
在属性选项卡上,选择编辑。
-
在编辑负载均衡器属性页面的流量配置部分中,取消选择启用连接耗尽。
-
选择保存更改。
要禁用连接耗尽,请使用 Amazon CLI
使用以下 modify-load-balancer-attributes 命令:
aws elb modify-load-balancer-attributes --load-balancer-name
my-loadbalancer
--load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":false}}"
以下为响应示例:
{
"LoadBalancerAttributes": {
"ConnectionDraining": {
"Enabled": false,
"Timeout": 300
}
},
"LoadBalancerName": "my-loadbalancer"
}