更新时间:2023-09-18 GMT+08:00
健康检查概述
全球加速实例通过健康检查判断终端节点的运行状态,健康检查机制提高了业务的可靠性和可用性,避免了异常终端节点对服务的影响。
您可以为全球加速实例的终端节点组开启健康检查。开启健康检查后,全球加速实例会定期向终端节点发送请求以测试其运行状态,当某个终端节点健康检查出现异常时,全球加速实例将停止向该终端节点分发流量请求,而是分发到健康检查正常的其他终端节点;当健康检查异常的终端节点恢复正常后,全球加速实例会将其自动恢复到请求服务中,承载业务流量。
目前全球加速实例支持TCP协议的健康检查。
TCP协议健康检查
TCP协议的健康检查是基于网络层探测,通过发起三次握手来获取终端节点的状态信息。
检查流程如图1所示。
TCP健康检查的机制如下:
- 全球加速实例根据健康检查配置,向终端节点发送TCP SYN报文。
- 终端节点收到请求报文后,如果相应的端口已经被正常监听,则会返回SYN+ACK报文。
- 如果在超时时间内没有收到终端节点的SYN+ACK报文,则判定健康检查失败。然后发送RST报文给终端节点中断TCP连接。
- 如果在超时时间内收到了SYN+ACK报文,则发送ACK给终端节点,判定健康检查成功,并发送RST报文给终端节点中断TCP连接。
健康检查时间窗
健康检查机制的引入,有效提高了业务服务的可用性。但是,为了避免频繁的健康检查失败引起的切换对系统可用性的冲击,健康检查只有连续多次检查成功或失败后,才会进行状态切换。
健康检查时间窗由以下三个因素决定:
- 检查间隔:每隔多久进行一次健康检查。
- 超时时间:等待服务器返回健康检查的时间。
- 最大重试次数:健康检查连续成功的次数。
系统必须连续3次检查失败,才会判定终端节点健康检查失败,与“最大重试次数”设置的数值无关。
健康检查时间窗的计算方法如下:
- 健康检查成功时间窗 = 超时时间*最大重试次数+检查间隔*(最大重试次数-1)
- 健康检查失败时间窗 = 超时时间*3+检查间隔*(3-1)
举例说明:
检查间隔设置为4s,超时时间设置为2s。
健康检查检测到终端节点从正常到失败状态,健康检查失败时间窗 = 超时时间*3+检查间隔*(3-1)= 2*3+4*(3-1)=14s。
父主题: 健康检查