Idle Timeout
Idle Timeout
Idle Timeout 的核心概念是「一段時間沒有活動就關閉連線或回收會話」。它和一般 request timeout 不同,重點是避免空閒連線長時間佔住資源,跟等待單次操作完成的 request timeout 不同。 可先對照 Impact Scope。
概念位置
Idle Timeout 位在 socket、load balancer、proxy、application 與 connection pool 之間。它常用來保護連線資源,避免長時間閒置造成檔案描述符、memory 或 session state 浪費。 可先對照 Impact Scope。
可觀察訊號
系統需要 idle timeout 的訊號是:
- 長連線長時間沒有資料交換
- 空閒連線數量持續累積
- load balancer 或 proxy 需要回收無效連線
接近真實網路服務的例子
WebSocket 連線、HTTP keep-alive、反向代理連線池或 application 內部 socket pool,常會透過 idle timeout 回收不再使用的連線。
設計責任
設計時要定義閒置判定條件、關閉前通知、重連策略與是否允許不同層級使用不同 timeout。Idle Timeout 應該和 read/write timeout、request timeout 區分開來,避免把不同問題混在一起。