功能概述

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

用户可以在添加监听器时配置健康检查功能来判断后端服务的可用性。

健康检查方式

健康检查与 LB 后端协议是两个相互独立的能力,所以健康检查协议可以与 LB 的后端协议相同,也可以不同。

使用 UDP 协议进行健康检查时,需保证后端能够正确响应 ICMP Echo Request,并且能返回 ICMP Destination Port Unreachable。如果后端有加载安全组或者有安全组策略,要保证其 上行 中相应的策略是放行的。

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

TCP

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

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

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

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

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. 如果 LB 节点在超时时间内没有收到 ICMP Echo Reply 报文,则判定健康检查失败。

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

UDP 监听器

UDP

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

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

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

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

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

UDP 监听器

健康检查选项

  • 检查间隔

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

  • 超时时间

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

  • 不健康阈值

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

  • 健康阈值

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

后端健康状态

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

  • 活跃

    表示健康检查正常。

  • 不可用

    表示健康检查失败。

  • 异常

    表示处于健康和不健康的中间转换状态,一般持续时间很短,与用户配置的 健康检查选项 相关。

操作步骤

  1. 通过 Web 浏览器登录企业云平台的 Console。

  2. 在顶部菜单栏中选择产品与服务 > 网络服务 > 负载均衡器,进入负载均衡器列表页面。

  3. 在负载均衡器列表,点击目标实例 ID,进入负载均衡器实例详情页。

    ld_lisener
  4. 监听器页签,点击创建监听器,或点击目标监听器的操作>修改,弹出修改监听器对话框。

  5. 点击显示高级选项,在健康检查参数区域,设置检查健康方式及健康检查选项。

  6. 确认信息填写无误后,点击提交

  7. 点击应用修改,使配置生效。