欢迎光临
我们一直在努力

负载均衡支持哪些健康检查算法?

负载均衡支持多种健康检查算法,以确保后端服务器的健康状态,从而保证业务的高可用性,以下是对负载均衡支持的健康检查算法的详细解析:

一、健康检查

负载均衡支持哪个健康检查算法

负载均衡通过健康检查来判断后端服务器的业务可用性,开启健康检查功能后,当某台后端服务器健康检查出现异常时,负载均衡会自动将新的请求分发到其他健康检查正常的后端服务器上;而当该后端服务器恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中进行流量转发。

二、健康检查算法分类

负载均衡支持的健康检查算法主要分为四层(TCP/UDP)和七层(HTTP/HTTPS)两大类,具体如下:

1. 四层健康检查算法

TCP健康检查:通过发起TCP三次握手来获取后端服务器的状态信息,如果后端服务器在指定时间内返回SYN+ACK响应报文,则判定为健康;否则判定为不健康。

机制:负载均衡向后端服务器发送TCP SYN数据包,后端服务器返回SYN+ACK数据包表示正常,否则判定为异常。

注意:正常的TCP三次握手后,会进行数据传输,但在健康检查时会发送RST中断建立的TCP连接,这可能导致后端服务器中的应用认为TCP连接异常退出。

UDP健康检查:通过发送UDP探测报文来获取后端服务器的状态信息,如果在指定时间内收到ICMP Port Unreachable报文,则判定为健康;否则判定为不健康。

负载均衡支持哪个健康检查算法

机制:负载均衡向后端服务器发送UDP报文,如果系统返回类似port XX unreachable的ICMP报错信息,则判定为异常。

注意:当前UDP协议服务健康检查可能存在服务真实状态与健康检查不一致的问题,特别是在Linux服务器的大并发场景下。

2. 七层健康检查算法

HTTP/HTTPS健康检查:通过HTTP HEAD或GET探测来获取状态信息,对于HTTPS监听,证书在负载均衡系统中进行管理,数据交互使用HTTP以提高系统性能。

机制:七层集群中的服务器根据监听的健康检查配置,向后端服务器的内网IP+健康检查端口+检查路径发送HTTP HEAD请求(包含设置的域名),后端服务器返回HTTP状态码,负载均衡根据状态码判断健康状态。

三、健康检查时间窗与阈值

为了避免频繁的健康检查失败引起的切换对系统可用性的冲击,健康检查只有在连续多次检查成功或失败后,才会进行状态切换,健康检查时间窗由以下三个因素决定:

响应超时时间:等待服务器返回健康检查的时间。

负载均衡支持哪个健康检查算法

检查间隔:每隔多久进行一次健康检查。

健康检查阈值:判定健康检查结果正常或异常时,所需的健康检查连续成功或失败的次数。

健康检查时间窗的计算方法如下:

健康检查失败时间窗 = 响应超时时间 × 不健康阈值 + 检查间隔 × (不健康阈值 1)

健康检查成功时间窗 = 健康检查成功响应时间 × 健康阈值 + 检查间隔 × (健康阈值 1)

四、健康检查状态与请求转发

根据健康检查探测情况,后端服务器的健康检查状态如下所示:

状态 说明 是否转发流量
探测中 新绑定的后端服务器在检查间隔 × 健康阈值时间内的状态 不转发
健康 后端服务正常 转发
异常 后端服务异常 不转发
已关闭 关闭健康检查 转发

如果目标后端服务器的健康检查失败,新的请求不会再分发到相应后端服务器上,所以对前端访问没有影响,如果目标后端服务器存在异常,正处于健康检查失败时间窗,而健康检查还未达到检查失败判定次数(默认为三次),则相应请求还是会被分发到该后端服务器,进而导致前端访问请求失败。

负载均衡支持多种健康检查算法,包括TCP、UDP、HTTP和HTTPS等,以满足不同业务场景的需求,通过合理的健康检查时间窗和阈值设置,可以有效提高业务的整体可用性。

到此,以上就是小编对于“负载均衡支持哪个健康检查算法”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《负载均衡支持哪些健康检查算法?》
文章链接:https://yuyunkj.com/article/17568.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发