负载均衡器通过健康检查来判断后端服务器的可用性。当检测到后端服务出现异常时,会自动隔离该后端服务,并将请求转发给其他健康的后端服务,实现服务的高可用性。当异常的后端服务器恢复正常运行后,负载均衡器会将其自动恢复到负载均衡服务中,承载业务流量。

健康检查方式

健康检查方式 检查机制 适用监听器类型

TCP

  1. LB 节点根据健康检查配置,向后端服务器(IP+健康检查端口)发送 TCP SYN 报文。

  2. 后端服务器收到请求后,如果相应端口正在正常监听,则会返回 SYN+ACK 数据包。

  3. 如果在超时时间之内,LB 节点没有收到后端服务器返回的数据包,则认为服务无响应,判定健康检查失败。

  4. 如果在超时时间之内,节点服务器成功收到后端服务器返回的数据包,则认为服务正常运行,判定健康检查成功。

四层(TCP/SSL)和七层(HTTP/HTTPS)监听器

HTTP

  1. LB 节点根据健康检查配置,向后端服务器(IP+端口+检查路径)发送 HTTP GET 请求(可指定 URL 及 HOST)。

  2. 后端服务器收到请求后,根据服务的情况返回相应的 HTTP 状态码。

  3. 如果 LB 节点在响应超时时间内收到了后端服务器的响应,HTTP 状态码为 200,则认为健康检查成功。

  4. 如果 LB 节点在响应超时时间内没有收到后端服务器的响应,则判定健康检查失败。

四层(TCP/SSL)和七层(HTTP/HTTPS)监听器

ICMP

  1. LB 节点根据健康检查配置,向后端服务器发送 ICMP Echo Request 报文。

  2. 如果在超时时间内没有收到 ICMP Echo Reply 报文,则判定健康检查失败。

  3. 如果在超时时间内收到了 ICMP Echo Reply 报文,则判定健康检查成功。

四层(UDP)监听器

UDP

  1. LB节点根据健康检查配置,向后端服务器发送ICMP Echo Request报文。

  2. 如果在超时时间内没有收到 ICMP Echo Reply 报文,则判定健康检查失败。

  3. 如果在超时时间内收到了 ICMP Echo Reply 报文,则向后端服务器发送 UDP 探测报文。

  4. 如果在超时时间内没有收到后端服务器返回的 ICMP Port Unreachable 报文,则判定健康检查成功。否则,判定健康检查失败。

说明

对于监听器为 UDP 端口组,且健康检查为 UDP 时,健康检查只会检测端口组的第一个端口。

四层(UDP)监听器

健康检查选项

  • 检查间隔:每隔多久进行一次健康检查,单位为秒,取值范围为 2 ~ 60

  • 超时时间:等待健康检查请求返回的时间,返回超时将会被判定为一次检查失败,单位为秒,取值范围为 5 ~ 300

  • 不健康阈值:健康检查连续失败的次数,达到阈值后端服务将被屏蔽,取值范围为 2 ~ 10

  • 健康阈值:健康检查连续成功的次数,达到阈值后端服务将被恢复,取值范围为 2 ~ 10

后端健康状态

根据健康检查的结果,后端服务器的健康状态包含以下三种:

  • 活跃:表示健康检查正常。

  • 不可用:表示健康检查失败。

  • 异常:处于健康和不健康的中间转换状态,一般持续时间很短,与您配置的健康检查选项相关。