负载均衡ALB中连接空闲超时时间意义

在阿里云应用型负载均衡(ALB)中,连接空闲超时时间(Idle Timeout) 是指 ALB 实例与客户端之间建立的TCP连接在没有数据传输的情况下,能够保持打开状态的最长时间。若在此时间内始终无任何数据交互,ALB 将主动断开该连接


1.定义与行为说明

  • 默认值:15 秒
  • 取值范围:1~600 秒(基础配置),最大可申请提升至 3600 秒
  • 触发条件:连接建立后,客户端与 ALB 之间无任何数据收发(包括 HTTP 请求/响应、WebSocket 消息、心跳包等)
  • 断开行为:超时后,ALB 主动关闭连接;下一次客户端发起请求时需重新建立新连接

⚠️ 注意:对于HTTP/2请求,连接空闲超时时间暂不生效。这意味着在 HTTP/2 场景下,即使设置了 IdleTimeout=15 秒,只要存在活跃的流(stream),连接不会因“空闲”而被断开。


2.与其他超时参数的区别

参数 名称 作用对象 默认值 最大值(可申请) 触发结果
IdleTimeout 连接空闲超时时间 客户端 ↔ ALB 的 TCP 连接 15 秒 3600 秒 无数据传输超时 → 断开连接
RequestTimeout 连接请求超时时间 ALB ↔ 后端服务器的请求处理 60 秒 3600 秒 后端未响应超时 → 返回 HTTP 504

3.典型应用场景影响

3.1 WebSocket 长连接

  • ALB 默认支持 WebSocket,但若60 秒内无消息交互(注意:此处实际受 RequestTimeout 影响),连接可能被断开。
  • 虽然 IdleTimeout=15 秒看似更短,但 WebSocket 建立后通常会持续有控制帧(如 ping/pong),因此一般不会触发 IdleTimeout

建议:若业务心跳间隔较长(如 >30 秒),应同时调大 RequestTimeout,并确保心跳间隔 < 超时值。

3.2 AI 流式响应(如大模型推理)

  • 流式输出过程中,客户端与 ALB 之间持续有数据流动,不会触发 IdleTimeout
  • 但若流式暂停超过 15 秒(例如模型生成 token间隔过长),可能被断开

建议**:在 AI 流式场景中,**主要需关注 RequestTimeout**,但为保险起见,也可适当调高 IdleTimeout 至 60 秒以上。