负载均衡器通过健康检查来判断后端服务器的可用性。当检测到后端服务出现异常时,会自动隔离该后端服务,并将请求转发给其他健康的后端服务,实现服务的高可用性。当异常的后端服务器恢复正常运行后,负载均衡器会将其自动恢复到负载均衡服务中,承载业务流量。
健康检查方式
健康检查方式 |
检查机制 |
适用监听器类型 |
TCP |
-
LB 节点根据健康检查配置,向后端服务器(IP+健康检查端口)发送 TCP SYN 报文。
-
后端服务器收到请求后,如果相应端口正在正常监听,则会返回 SYN+ACK 数据包。
-
如果在超时时间之内,LB 节点没有收到后端服务器返回的数据包,则认为服务无响应,判定健康检查失败。
-
如果在超时时间之内,节点服务器成功收到后端服务器返回的数据包,则认为服务正常运行,判定健康检查成功。
|
四层(TCP/SSL)和七层(HTTP/HTTPS)监听器 |
HTTP |
-
LB 节点根据健康检查配置,向后端服务器(IP+端口+检查路径)发送 HTTP GET 请求(可指定 URL 及 HOST)。
-
后端服务器收到请求后,根据服务的情况返回相应的 HTTP 状态码。
-
如果 LB 节点在响应超时时间内收到了后端服务器的响应,HTTP 状态码为 200,则认为健康检查成功。
-
如果 LB 节点在响应超时时间内没有收到后端服务器的响应,则判定健康检查失败。
|
四层(TCP/SSL)和七层(HTTP/HTTPS)监听器 |
ICMP |
-
LB 节点根据健康检查配置,向后端服务器发送 ICMP Echo Request 报文。
-
如果在超时时间内没有收到 ICMP Echo Reply 报文,则判定健康检查失败。
-
如果在超时时间内收到了 ICMP Echo Reply 报文,则判定健康检查成功。
|
四层(UDP)监听器 |
UDP |
-
LB节点根据健康检查配置,向后端服务器发送ICMP Echo Request报文。
-
如果在超时时间内没有收到 ICMP Echo Reply 报文,则判定健康检查失败。
-
如果在超时时间内收到了 ICMP Echo Reply 报文,则向后端服务器发送 UDP 探测报文。
-
如果在超时时间内没有收到后端服务器返回的 ICMP Port Unreachable 报文,则判定健康检查成功。否则,判定健康检查失败。
说明 |
对于监听器为 UDP 端口组,且健康检查为 UDP 时,健康检查只会检测端口组的第一个端口。
|
|
四层(UDP)监听器 |
健康检查选项
-
检查间隔:每隔多久进行一次健康检查,单位为秒,取值范围为 2 ~ 60
-
超时时间:等待健康检查请求返回的时间,返回超时将会被判定为一次检查失败,单位为秒,取值范围为 5 ~ 300
-
不健康阈值:健康检查连续失败的次数,达到阈值后端服务将被屏蔽,取值范围为 2 ~ 10
-
健康阈值:健康检查连续成功的次数,达到阈值后端服务将被恢复,取值范围为 2 ~ 10
后端健康状态
根据健康检查的结果,后端服务器的健康状态包含以下三种: