

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置经典负载均衡器的 Connection Draining
<a name="config-conn-drain"></a>

要确保经典负载均衡器停止向正在取消注册或运行状况不佳的实例发送请求，并使现有连接保持打开状态，请使用 *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 在由于扩展事件或运行状况检查替换而终止实例之前，将会等待进行中的请求完成或等待最大超时过期。

如果您希望负载均衡器立即关闭与正在取消注册的实例或运行状况不佳的实例的连接，则可以禁用连接耗尽。禁用连接耗尽后，不会完成向正在取消注册的实例或运行状况不佳的实例发出的任何进行中请求。

**Topics**
+ [启用 Connection Draining](#enable-conn-drain)
+ [禁用 Connection Draining](#disable-conn-drain)

## 启用 Connection Draining
<a name="enable-conn-drain"></a>

您可以随时为负载均衡器启用连接耗尽。

**使用控制台启用连接耗尽**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择负载均衡器的名称以打开其详细信息页面。

1. 在**属性**选项卡上，选择**编辑**。

1. 在**编辑负载均衡器属性**页面的**流量配置**部分中，选择**启用连接耗尽**。

1. （可选）对于**超时（耗尽间隔时间）**，键入一个介于 1 到 3600 秒之间的值。如果您不做任何选择，则将使用 300 秒的默认值。

1. 选择**保存更改**。

**要启用连接耗尽，请使用 AWS CLI**  
使用以下 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/modify-load-balancer-attributes.html) 命令：

```
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
<a name="disable-conn-drain"></a>

您可以随时为负载均衡器禁用连接耗尽。

**使用控制台禁用连接耗尽**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择负载均衡器的名称以打开其详细信息页面。

1. 在**属性**选项卡上，选择**编辑**。

1. 在**编辑负载均衡器属性**页面的**流量配置**部分中，取消选择**启用连接耗尽**。

1. 选择**保存更改**。

**要禁用连接耗尽，请使用 AWS CLI**  
使用以下 [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/modify-load-balancer-attributes.html) 命令：

```
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"
}
```