长连接 vs 短连接
- 看 QPS(吞吐/连接频次):请求频繁、会话连续性强(IM/推送/RPC 内部调用)倾向长连接;偶发、低频请求可用短连接避免常驻资源。
- 看 RTT(首包/握手成本):高 RTT 环境握手代价大,长连接收益更明显;低 RTT 且请求稀疏时短连接影响较小。
- 看中间设备(NAT/LB/网关):NAT/防火墙有空闲超时会回收长连接,需要心跳/keepalive 维持;短连接穿透性好但连接建立更频繁。LB 是否支持连接复用/四层直通也影响选择。
- 看资源模型(内核/应用承载):长连接占用 fd/内存,需要合理的连接池、限流和心跳;短连接占用端口(TIME_WAIT)与 CPU(握手/四次挥手),需要端口扩展或复用策略。
- 金句:长连接是“状态换性能”,短连接是“简单换成本”。高频低延迟场景用长连接提升效率;低频、简单、对状态敏感度低的场景用短连接减少复杂性。