开发者社区> 问答> 正文

负载均衡udp健康检查原理

已解决

负载均衡udp健康检查原理

展开
收起
提个问题! 2024-06-12 10:05:30 45 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    针对四层UDP监听,健康检查通过UDP报文探测来获取状态信息,如下图所示。
    负载均衡UDP监听的检查机制如下:
    1.LVS节点服务器根据监听的健康检查配置,向后端ECS的内网IP+【健康检查端口】发送UDP报文。
    2.如果后端ECS相应端口未正常监听,则系统会返回类似port XX unreachable的ICMP报错信息,反之不做任何处理。
    3.如果在【响应超时时间】之内,LVS节点服务器收到了后端ECS返回的上述错误信息,则认为服务异常,判定健康检查失败。
    4.如果在【响应超时时间】之内,LVS节点服务器没有收到后端ECS返回的任何信息,则认为服务正常,判定健康检查成功。

    说明:
    当前UDP协议服务健康检查,可能存在服务真实状态与健康检查不一致的问题。
    如果后端ECS是Linux服务器,在大并发场景下,由于Linux的防ICMP攻击保护机制,会限制服务器发送ICMP的速度。此时,即便服务已经出现异常,但由于无法向前端返回port XX unreachable报错信息,会导致负载均衡由于没收到ICMP应答进而判定健康检查成功,最终导致服务真实状态与健康检查不一致。
    解决方案:负载均衡通过发送您指定的字符串到后端服务器,必须得到指定应答后才认为检查成功。但该实现机制需要客户端程序配合应答。
    具体详情参考文档
    2024-06-12 10:05:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《应用型负载均衡ALB产品解读》 立即下载
阿里云网络-SLB负载均衡产品介绍 立即下载
负载均衡SLB热点问题解答 立即下载