You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网络负载均衡器(NLB)TCP连接空闲超时导致不健康节点仍被路由问题咨询

路由到失效服务器的原因

NLB属于四层负载均衡,工作在OSI模型的传输层,核心转发逻辑基于TCP流(五元组:源IP、源端口、目标IP、目标端口、传输层协议)的绑定规则执行:

  1. NLB只会在新TCP连接建立时参考目标组的健康状态做转发决策,给新连接分配健康的目标节点,同时生成对应的流表转发条目
  2. 当目标节点被健康检查标记为不健康后,NLB只会阻止新连接分配到该节点,不会主动清除已经生成的存量流表条目
  3. 只要存量TCP连接没有被两端主动关闭、或者没有触发超时断开,这条连接上的所有数据包都会匹配原有流表,持续转发到已经不健康的目标节点,直到连接彻底终止。
可行处理方案

以下方案可以根据你的业务场景选择:

  • 调整目标组注销延迟配置:在NLB对应的目标组中修改deregistration_delay.timeout_seconds参数,默认值为300秒,你可以根据业务容忍度调低该值。当目标被标记为不健康时,NLB会在你配置的超时时间后主动向连接两端发送RST包强制中断存量连接,避免异常流量持续转发。
  • 优化TCP keepalive配置:在服务器端或者客户端调整TCP存活探测参数,缩短异常连接的感知周期。以Linux系统为例,可以调整内核参数net.ipv4.tcp_keepalive_time(探测前的空闲时间)、net.ipv4.tcp_keepalive_intvl(探测间隔)、net.ipv4.tcp_keepalive_probes(探测失败次数阈值),将默认2小时的探测周期缩短到1分钟以内,就可以快速识别到业务不可用的存量连接并主动关闭。
  • 业务层新增重试逻辑:如果业务使用自研客户端访问服务,可以在代码层面增加异常重试机制,当请求返回错误或超时时,主动断开当前TCP连接,使用新连接发起请求,新连接会被NLB自动分配到健康的目标节点。
  • 架构融合调整:如果业务可以接受小幅性能损耗,也可以保留NLB作为入口承接大流量,在NLB后端挂载ALB做七层转发,利用ALB的七层请求调度能力,实现每次请求都基于最新健康状态分配节点,不过该方案架构改动较大,适合长期架构优化场景。

内容的提问来源于stack exchange,提问作者vaskitup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:36:02