负载均衡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 秒以上。