全球加速通过健康检查来判断终端节点的运行状态,健康检查机制提高了业务的可靠性和可用性,避免了异常终端节点对服务的影响。

健康检查介绍

您可以为全球加速实例的终端节点组开启健康检查。开启健康检查后,当某个终端节点健康检查出现异常时,全球加速会自动将新的请求分发到其它健康检查正常的终端节点上;而当健康检查异常的终端节点恢复正常后,全球加速会将该终端节点自动恢复到请求服务中。

全球加速支持TCP、HTTP和HTTPS协议的健康检查。

TCP协议健康检查

TCP协议的健康检查是基于网络层探测,通过发送SYN握手报文来检测服务器端口是否存活。检查流程如下图:TCP健康检查
序号 描述
全球加速实例根据监听的健康检查配置,向终端节点的IP和健康检查端口发送TCP SYN数据包。
根据终端节点是否返回SYN+ACK数据包,判定健康检查是否成功。
  • 如果在响应超时时间(3秒)之内,全球加速实例成功收到终端节点返回的SYN+ACK数据包,则认为终端节点正常运行,判定健康检查成功。
  • 如果在响应超时时间(3秒)之内,全球加速实例收到终端节点返回的RST数据包,则认为终端节点未响应健康检查端口,判定健康检查失败。
  • 如果已超出响应超时时间(3秒),全球加速实例还未收到终端节点返回的SYN+ACK数据包,则认为网络无法到达终端节点,终端节点无法响应,判定健康检查失败。
说明 响应超时时间为接收来自运行状况检查的响应需要等待的最大时间。如果终端节点在响应超时时间内没有正确响应,则判定为健康检查失败。系统默认为3秒,不支持配置。
全球加速实例成功收到终端节点返回的SYN+ACK数据包后,向终端节点发送ACK数据包,确认连接。

HTTP和HTTPS协议的健康检查

HTTP和HTTPS协议的健康检查是基于GET请求,通过发送GET请求模拟浏览器的访问行为来检查终端节点的服务器应用是否健康。检查流程如下图:HTTP健康检查
序号 描述
全球加速实例根据监听的健康检查配置,向终端节点的IP、健康检查端口、检查路径发送HTTP GET请求。
终端节点收到请求后,根据相应服务的运行情况,确定是否返回HTTP状态码。
  • 如果在响应超时时间(3秒)之内,全球加速实例成功收到终端节点返回的状态码200,则认为终端节点正常运行,判定健康检查成功。
  • 如果在响应超时时间(3秒)之内,全球加速实例收到终端节点返回状态码不为200,则认为终端节点异常,判定健康检查失败。
  • 如果已超出响应超时时间(3秒),全球加速实例还未收到终端节点返回状态码,则认为网络无法到达终端节点,终端节点无法响应,判定健康检查失败。
说明 响应超时时间为接收来自运行状况检查的响应需要等待的最大时间。如果终端节点在响应超时时间内没有正确响应,则判定为健康检查失败。系统默认为3秒,不支持配置。

健康检查时间窗

健康检查机制的引入,有效提高了业务服务的可用性。但是,为了避免频繁的健康检查失败引起的切换对系统可用性的冲击,健康检查只有在健康检查时间窗内连续多次检查成功或失败后,才会进行状态切换。健康检查时间窗由以下三个因素决定:
  • 健康检查间隔时间:每隔多久进行一次健康检查。
  • 响应超时时间:等待后端服务返回健康检查的最大时间。
  • 健康检查健康阈值:针对健康检查状态变化所需要的连续健康检查次数。
健康检查时间窗的计算方法如下:
  • 健康检查失败时间窗=响应超时时间×健康检查健康阈值+健康检查间隔时间×(健康检查健康阈值-1)
    以下图为例,健康检查响应超时时间为3秒,健康检查间隔时间为2秒,健康检查健康阈值为3次,健康检查失败时间窗=3×3+2×(3-1)=13秒。健康检查失败时间窗
  • 健康检查成功时间窗=(健康检查成功响应时间x健康检查健康阈值)+健康检查间隔时间x(健康检查健康阈值-1)
    以下图为例,健康检查成功响应时间为1秒,健康检查间隔时间为2秒,健康检查健康阈值为3次,健康检查成功时间窗=1×3+2×(3-1)=7秒。健康检查成功时间窗

使用限制

对于UDP监听,终端节点必须有TCP、HTTP或HTTPS服务才支持健康检查,否则,它将被标记为异常。

开启健康检查

  1. 登录全球加速管理控制台
  2. 实例列表页面,找到目标全球加速实例,在操作列单击配置监听
  3. 监听页签下,找到目标监听,在操作列单击编辑监听
  4. 编辑监听页面,单击下一步
  5. 配置终端节点配置向导页面的健康检查区域,打开健康检查的开关,然后根据以下信息配置健康检查。
    配置 说明
    健康检查协议 选择健康检查的协议,支持TCP、HTTP和HTTPS协议。
    • TCP协议的健康检查是基于网络层探测,通过发送SYN握手报文来检测服务器端口是否存活。
    • HTTP和HTTPS协议的健康检查是基于GET请求,通过发送GET请求模拟浏览器的访问行为来检查终端节点的服务器应用是否健康。
    端口 健康检查服务访问终端节点时的探测端口。

    取值范围:1~65535。

    健康检查间隔时间 健康检查的时间间隔,单位为秒。

    取值范围:1~50秒,默认为2秒。

    路径 指定健康检查的路径。

    必须以正斜线(/)开头,长度限制为1~80个字符,支持使用字母、数字和短划线(-)、正斜线(/)、英文句点(.)、百分号(%)、问号(?)、井号(#)和and(&)以及扩展字符集_;~!()*[]@$^:',+

    默认为全球加速系统向后端服务器应用配置的缺省首页发起GET请求。如果您用来进行健康检查的页面并不是应用服务器的缺省首页,需要指定具体的检查路径。

    说明 仅HTTP和HTTPS协议健康检查显示该项。
    健康检查健康阈值 针对健康检查状态变化所需要的连续健康检查次数,即从成功到失败的连续健康检查失败次数或从失败到成功的连续健康检查成功次数。

    取值范围:2~10,默认为3次。

  6. 单击下一步,在配置审核配置向导页面确认健康检查信息,然后单击提交

更多操作

操作 说明
修改健康检查配置
  1. 监听页签下,找到目标监听,在操作列单击编辑节点组
  2. 配置终端节点配置向导页面的健康检查区域,您可以修改健康检查协议、端口、健康检查间隔时间等各配置项信息,然后单击下一步

    关于配置项信息,请参见开启健康检查

  3. 配置审核配置向导页面,单击下一步
关闭健康检查
  1. 监听页签下,找到目标监听,在操作列单击编辑节点组
  2. 配置终端节点配置向导页面的健康检查区域,关闭健康检查的开关,然后单击下一步
  3. 配置审核配置向导页面,单击下一步

相关文档