You need to enable JavaScript to run this app.
导航

健康检查说明

最近更新时间2024.01.04 16:17:06

首次发布时间2024.01.04 16:17:06

概述

健康检查是一个用于检查后端服务器的可用性和运行状态的功能。开启健康检查后,负载均衡实例会定期发送健康检查请求到后端服务器,以确定后端服务器的状态是否正常。

负载均衡实例只会向状态正常的后端服务器转发客户端请求。如果一台后端服务器的状态异常,负载均衡实例将不会把请求转发到该后端服务器,从而避免将请求发送到不可用的服务器上。当后端服务器恢复正常运行后,负载均衡实例会继续向该后端服务器转发请求。

健康检查协议

七层负载均衡支持的健康检查协议包括TCP和HTTP。

以下内容对基于各协议的健康检查机制进行说明。

健康检查机制

TCP健康检查机制

TCP健康检查流程图
图片
TCP健康检查流程如下:

  1. 负载均衡实例根据健康检查配置,向后端服务器(IP+健康检查端口)发送TCP SYN报文。
  2. 当后端服务器收到请求报文之后,在相应端口的监听状态正常的情况下,后端服务器会返回SYN+ACK报文。
  3. 负载均衡实例根据情况返回报文给后端服务器:
    • 在超时时间内,如果负载均衡实例没有收到来自后端服务器的SYN+ACK报文,负载均衡实例会判定健康检查失败。然后,负载均衡实例向后端服务器发送RST报文来中断TCP连接。
    • 在超时时间内,如果负载均衡实例收到了来自后端服务器的SYN+ACK报文,负载均衡实例判定健康检查成功。然后,负载均衡实例向后端服务器发送ACK报文,随后再向后端服务器发送RST报文来中断TCP连接。

HTTP健康检查机制

HTTP健康检查流程图
图片
HTTP健康检查流程:

  1. 负载均衡实例根据健康检查配置,向后端服务器(IP+端口+检查路径)发送HTTP请求。您可以选择设置Host头域。
  2. 后端服务器收到请求后,根据情况返回相应的HTTP状态码。
  3. 负载均衡实例判断检查健康是否成功:
    • 在响应超时时间内,如果负载均衡实例收到了后端服务器的响应,会将HTTP状态码与配置的状态码进行对比。如果状态码匹配,负载均衡实例判定健康检查成功、后端服务器运行正常。如果状态码不匹配,负载均衡实例判定健康检查失败、后端服务器运行异常。
    • 在响应超时时间内,如果负载均衡实例没有收到后端服务器的响应,则判定健康检查失败。