1. 程式人生 > >連線的建立與釋放

連線的建立與釋放

連線的建立分為兩端,一個是客戶端,一個是服務端。建立連線一般是有客戶端主動發起的,而關閉連線也是一般由客戶端發起,但是服務端也可以主動關閉長時間沒有通訊的連線以釋放伺服器的資源。詳細的資訊見部落格:圖解TCP連線建立與釋放
客戶端主動關閉連線
如果使用者手動管理連線並且在建立連線以後沒有主動釋放連線,會導致每次都會建立新的連線,而舊的連線又不會被關閉,這樣就導致了TCP連線資源的洩露。下面部落格描述了資源洩露導致的問題:tcp socket檔案控制代碼洩漏
啞代理 - TCP連結高Recv-Q,記憶體洩露的罪魁禍首
如果在出現異常的情況下(比如說伺服器斷電),就會出現連線異常:伺服器主動斷開連線異常


那麼,有沒有一種實時監測連線性的方法呢?見部落格:長期使人困惑的問題:TCP連線中斷的實時檢測
TCP連線有效性檢測方法
Tomcat中BIO聯結器預設的執行緒池執行緒個數是200,而每一個執行緒處理一次請求,如果我只有一個連線,在這個連線上傳送的請求超過200個,那麼,超過200的請求就沒有執行緒可以處理了,這樣就會導致請求超時。詳見部落格:杜絕假死,Tomcat容器做到自我保護,設定最大連線數
系統反覆掛掉,都是tomcat連線池沒配置好惹的禍