弹性负载均衡 ELB-健康检查介绍:TCP健康检查

时间:2024-04-03 09:08:59

TCP健康检查

对于四层(TCP)和七层(HTTP/HTTPS)后端协议,您可以配置TCP健康检查,通过发起TCP三次握手来获取后端服务器的状态信息,如图1所示。

图1 TCP健康检查

TCP健康检查的机制如下:

  1. ELB节点根据健康检查配置,向后端服务器(IP+健康检查端口)发送TCP SYN报文。
  2. 后端服务器收到请求报文后,如果相应的端口已经被正常监听,则会返回SYN+ACK报文。
    • 如果在超时时间内没有收到后端服务器的SYN+ACK报文,则判定健康检查失败。随后发送RST报文给后端服务器中断TCP连接。
    • 如果在超时时间内收到了SYN+ACK报文,则判定健康检查成功,并进一步发送ACK报文给后端服务器。随后发送RST报文给后端服务器中断TCP连接。

正常的TCP三次握手后,会进行数据传输,但是在健康检查时会发送RST中断建立的TCP连接。该实现方式可能会导致后端服务器中的应用认为TCP连接异常退出,并打印错误信息,如“Connection reset by peer”。解决方案如下:

  • 采用HTTP健康检查
  • 后端服务器忽略健康检查的连接错误。
support.huaweicloud.com/usermanual-elb/elb_ug_shdg_0002_01.html