这篇会为你介绍健康检查中的探测方式及其原理、源站健康判定条件以及计算方式。
注意:EdgeOne 负载均衡功能在内测中,如你需要使用请 联系我们。
一、健康检查原理
配置了健康检查策略后,EdgeOne 不同地区的探测节点会向你的源站发送探测请求,并根据响应结果来判定源站的健康状态。健康检查策略由探测方式和源站健康判定条件组成,探测方式决定探测请求的类型,源站健康判定条件决定响应结果的处理方式。
二、探测方式
当前支持 ICMP Ping、HTTP/HTTPS、TCP 和 UDP 这四种探测方式,详情请参见 探测方式的原理介绍。以下为对应的配置项说明:
| 探测方式 | 适用场景 | 配置项 | 说明 |
| ICMP Ping | 仅探测网络连通性,主机可达性。 | 探测频率 | 必填,支持配置 30-600 秒。 |
| HTTP/HTTPS | 适用于需要对请求的内容进行识别的应用,如 Web 应用、App 服务等。 | 探测频率 | 必填,支持配置 30-600 秒。 |
| | | URL | 必填,健康检查的请求完整 URL,例如:www.example.com/test。 |
| | | 探测端口 | 必填,默认为 80 端口。除需要指定特定端口以外,其余情况建议不修改。 |
| | | HTTP Method | 必填,健康检查的 HTTP 请求方式,默认为 HEAD,可选:GET 或 HEAD。若使用 HEAD 方法,服务器仅返回 HTTP 头部信息,可降低后端开销,提升请求效率,对应的源站服务需支持 HEAD。若使用 GET 方法,则源站服务支持 GET 即可。 |
| | | HTTP 状态码 | 必填,当状态码为所选状态码时,即认为源站健康。默认包含 2XX,可选:1XX、2XX、3XX、4XX、5XX。 |
| | | 遵循重定向 | 默认关闭。开启后,探测节点将根据源站响应的 301/302 重定向地址再次发起探测,以最后一次跳转响应的状态码作为健康状态码的判定结果,最多支持跳转3次。 |
| | | 自定义请求头 | 选填,发起健康检查时,可以配置携带自定义请求头回源,至多可配置 8 个,例如: host: www.example.com。 |
| TCP | 适用于对可靠性和数据准确性要求高、对传输速度要求较低的场景,如文件传输、远程登录等。 | 探测频率 | 必填,支持配置 30-600 秒。 |
| | | 探测端口 | 必填,默认为 80 端口。除需要指定特定端口以外,其余情况建议不修改。 |
| UDP | 适用于对传输效率要求高、对准确性要求相对较低的场景,如即时通讯、在线视频等。 | 探测频率 | 必填,支持配置 30-600 秒。 |
| | | 探测端口 | 必填,默认为 80 端口。除需要指定特定端口以外,其余情况建议不修改。 |
| | | 探测请求 | 必填,自定义健康检查请求的内容,可填写 500 个长度以内的字符。 |
| | | 探测返回结果 | 必填,自定义健康检查返回结果的内容,可填写 500 个长度以内的字符。 |
三、源站健康判定条件
选择 ICMP Ping、HTTP/HTTPS、TCP 和 UDP 任一探测策略,单击展开高级配置即可配置源站健康判定条件。以下为各配置项说明:
| 配置项 | 说明 |
| 超时时间 | 单次探测请求允许的回源超时时间,大于该时长未响应则被判定为“不健康”,默认为 5 秒,可配置区间为 [1, 30]。 |
| 不健康阈值 | 判断源站“不健康”所需要的探测次数,达到指定的次数则判定为“不健康”,默认为 2 次,可配置区间为 [1, 5]。例如:将该值设置为 2 ,当某个源站处于“健康”状态时,连续两次探测结果都是“不健康”,那么该源站就会被判定为“不健康”。 |
| 健康阈值 | 恢复源站为“健康”所需要的探测次数,达到指定的次数则判定为“健康”,恢复为可用状态,默认为3次,可配置区间为 [1, 5]。例如:将该值设置为 3 ,当某个源站处于“不健康”状态时,连续三次探测结果都是“健康”,那么该源站就会被判定为“健康”。 |
主动探测源站为不健康或恢复为健康所需时间周期例如:当前设置源站健康判定条件为超时时间5s,不健康阈值为3次,健康阈值为3次,每30秒探测一次。则判断该源站为不健康所需耗时为:5+30+5+30+5=75秒。恢复该源站为健康状态所需耗时为(假定主动探测收到成功响应耗时需1秒):1+30+1+30+1=63秒。
四、探测方式的原理介绍
ICMP PingHTTP/HTTPSTCPUDPICMP Ping 健康检查机制如下:1. EdgeOne 探测节点向你的源站发送 Ping 命令。2. 若 Ping 成功,且在回源超时时间内,探测节点收到源站返回的 ICMP reply,则表示服务正常,本次结果判定为健康。3. 若 Ping 失败,在回源超时时间内,探测节点未收到源站返回的 ICMP reply,则表示服务异常,本次结果判定为不健康。说明:ICMP Ping 需要你的源站支持 Ping。HTTP/HTTPS 健康检查机制如下:1. EdgeOne 探测节点向你的源站发送 HTTP 请求,需要配置相应的 URL 和端口,可携带自定义的 HOST。2. 若在回源超时时间内,EO 探测节点收到了源站返回的 HTTP 状态码,若与设置的 HTTP 状态码匹配成功,则本次结果判定为健康。3. 若在回源超时时间内,EO 探测节点未收到源站的响应或收到与设置不匹配的状态码,则本次结果判定为不健康。TCP 健康检查机制如下:1. EdgeOne 探测节点向你的源站的特定端口(可配置)发送 SYN 连接请求报文。2. 源站收到 SYN 请求报文后,若相应端口处于正常监听状态,则会返回 SYN+ACK 响应报文。3. 若在回源超时时间内,探测节点收到源站返回的 SYN+ACK 响应报文,则表示服务运行正常,本次结果判定为健康,并向源站回复 ACK 报文以及发送 RST 复位报文中断 TCP 连接。4. 若在回源超时时间内,探测节点未收到源站返回的 SYN+ACK 响应报文,则表示服务运行异常,本次结果判定为不健康,并向源站发送 RST 复位报文中断 TCP 连接。UDP 健康检查机制如下:1. EdgeOne 探测节点向你的源站的特定端口(可配置)发送自定义的探测报文。2. 若在回源超时时间内,探测节点收到源站返回的自定义的响应报文,则表示服务运行正常,本次结果判定为健康。3. 若在回源超时时间内,探测节点未收到源站返回的自定义的响应报文或者收到与定义内容不支持的响应报文,则表示服务运行异常,本次结果判定为不健康。说明:请求内容和响应内容都是自定义的,同时你需要在源站配置相应的请求-响应内容。
五、探测请求标识
主动探测时不会携带特殊请求标识,当你选择 ICMP Ping 探测或 TCP 探测时没有相关特征;选择 UDP 探测时可以通过配置的自定义内容进行判断;HTTP/HTTPS 探测中可以配置单独的自定义请求头来进行标识。