首页/云/云网络与负载均衡速查/连接空闲超时与建连超时
负载均衡54 条

连接空闲超时与建连超时

负载均衡对连接有两条关键超时:建连超时是等待与后端建立连接的上限,空闲超时是连接无数据后保留的时间。长连接业务必须按心跳周期调整空闲超时,否则连接会被中间层静默回收。

两条超时分别管什么

负载均衡对连接有两条关键超时:建连超时是等待与后端建立连接的上限,后端进程卡住或端口没监听时,它决定多久返回错误;空闲超时是连接建立后没有数据流动能被保留多久,超过就被回收。前者影响故障暴露的速度,后者直接决定长连接业务稳不稳定——空闲超时一旦小于心跳间隔,连接会周期性被中间层清掉,而应用侧往往只看到「莫名断开」。

基本信息

建连超时等待与后端建立连接的上限,后端卡住时超时返回错误
空闲超时连接无数据流转后回收的时间,需大于业务心跳间隔
设置原则空闲超时大于应用心跳周期,并留出重试余量
注意四层与七层的默认值不同,以产品文档当前默认值为准

典型使用场景

  • WebSocket 与消息推送:按心跳周期调整空闲超时避免掉线
  • 数据库或消息队列代理:长连接空闲期很长,需放宽空闲超时
  • 后端启动慢:适当放宽建连超时,减少启动期的失败请求
  • 排查周期性断连:用不发送数据的连接测量实际断开时间

观察空闲连接何时被断开

观察空闲连接何时被断开
timeout 300 nc -v <LB地址> 8080
# 保持不发送数据,记录连接被断开的时间点
# 结果与配置的空闲超时对比,可确认哪一层先回收连接

现象与原因对照

现象可能原因
连接规律性断开空闲超时小于心跳间隔
后端卡住时长时间无响应建连超时设置过大
启动期请求批量失败建连超时小于后端启动时间
长连接在静默期断开缺少应用层心跳
空闲超时小于心跳间隔时,连接会被负载均衡先一步清理,表现为周期性断连。

怎么定这两个值

定参数前先量出三个数:业务的最长静默间隔、后端正常情况下建立连接所需的时间、后端启动或重启的耗时上限。空闲超时取最长静默间隔的一到两倍,留出网络抖动与时钟误差的余地;建连超时按后端启动耗时上限设置,同时不要太大,否则后端真卡住时请求会长时间挂起并堆积,把小故障拖成大故障。两个值确定后写进配置文档,后续调整要同步通知应用侧。

易错点

  • 用默认超时接入长连接业务,出现规律性断开
  • 只排查后端逻辑,忽略中间层的空闲回收
  • 建连超时设得过大,后端卡住时请求长时间挂起并堆积
  • 只改了负载均衡的超时,CDN 或 WAF 层仍是旧值

数据来源与参考

  • 阿里云 CLB 超时配置文档
  • 腾讯云 CLB 超时说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌