您可以为终端节点组启用健康检查,以阻止流量被路由至运行状况不佳的终端节点,从而改善您后端应用的可用性。全球加速按您制定的时间间隔对每个终端节点执行健康检查。如果某个终端节点被判定为故障,系统将停止向其调度流量,并将流量转移到同一组内其他运行正常的终端节点。当该运行状况不佳的终端节点被再次确认为运行正常后,系统将恢复向其调度流量。
全球加速支持以下健康检查方式:
TCP 健康检查:全球加速通过向终端节点建立 TCP 连接,基于后端服务器的网络传输层响应来判断终端节点的健康状态。
HTTP/HTTPS 健康检查:全球加速通过向终端节点发送 HTTP GET 请求,基于后端服务器的应用层的响应来判断终端节点的健康状态。
全球加速的 TCP 健康检查基于 TCP 协议的连接建立机制。全球加速通过发送 SYN 包并验证后端服务器返回的 SYN-ACK 响应来判断其状态。
TCP 健康检查机制如下:
说明
对于 TCP 健康检查,超时时间为全球加速在发出 TCP SYN 报文后等待返回 SYN-ACK 报文的最长时间。默认为 3 秒,不支持修改。
全球加速的 HTTP/HTTPS 健康检查允许您基于应用层的响应判断后端服务器的健康状态。
HTTP/HTTPS 健康检查机制如下:
说明
对于 HTTP/HTTPS 健康检查,超时时间为全球加速在发出 HTTP GET 请求后等待返回 HTTP 响应的最长时间。默认为 2 秒,不支持修改。
您可以通过编辑终端节点组的属性启用健康检查。步骤如下:
登录火山引擎全球加速控制台。
在左侧导航栏,点击 加速器管理 > 标准型加速器 。
在 标准型加速器 页面,点击待配置加速器名称。
在 监听 标签页,找到待配置监听器,点击 查看节点组 。
在 终端节点组 标签页,找到待配置终端节点组名称,在 操作 栏点击 编辑 。
在 编辑终端节点组 页面,开启 健康检查,参考下文“健康检查字段解释”完成配置,然后点击 确认,完成健康检查配置。
| 相关字段 | 说明 |
|---|---|
健康检查协议 | 根据您需要的健康检查类型,选择健康检查协议:
|
| 端口 | 健康检查服务向后端服务器尝试建连时使用的 TCP 端口。范围为1~65535。 |
健康检查时间间隔 | 系统每隔多长时间进行一次健康检查,单位为秒。输入范围为1~50秒,默认为 2 秒。 |
健康检查健康阈值 | 系统在进行状态切换前所需要的连续成功或失败的检查次数,输入范围2~10,默认为3次。 说明 间歇性、暂时性的故障可能导致流量在终端节点之间被频繁切换,从而可能降低服务质量。为缓解此问题,全球加速允许您配置健康检查健康阈值,仅在达到阈值指定的连续成功或连续失败次数后,才将终端节点判定为正常或故障。关于设置健康检查健康阈值的更多考量,请参考下文“故障判定时间”。 |
| 健康检查域名 | 仅当 健康检查协议 为 HTTP 或 HTTPS 时出现。该选项用来指定后端服务器目标站点的域名,如 example.com。当后端服务器采用了虚拟主机(virtual hosting)的配置时,会在同一个 IP 地址上提供多个站点的服务。此时,健康检查域名 选项指定了发送给服务器的 HOST 请求头以及 TLS 握手时用到的 Server Name Indication (SNI) 主机名。 |
健康检查路径 | 仅当 健康检查协议 为 说明 由于全球加速发送的是 HTTP GET 请求,于是全球加速会接收完整的 HTTP 响应才完成该次检测。为了节省您的服务器资源,建议您指定一个尺寸较小的资源。 |
从一个后端服务器发生故障到健康检查判断该后端服务器已故障,中间有一段时间。这个时间由以下三个因素决定:
您可以用以下估算公式来估算故障判定所需的最长时间:故障判定时间 ≈ (健康检查时间间隔 + 响应超时时间) × 健康检查健康阈值
示例:
基于以下配置:
估算出故障判定时间:故障判定时间 ≈ (2 + 3) × 3 = 15 秒