解決 httpclient 下 Address already in use: connect 的錯誤


最近做httpclient做轉發服務,發現服務器上總是有很多close_wait狀態的連接,而且這些連接都不會關閉,最后導致服務器沒法建立新的網絡連接,從而停止響應。 
后來在網上搜索了一下,發現解決的方法也很簡單,如果想重用連接,那就使用連接管理器,從連接管理器里獲取連接,然后定時的用連接管理器來釋放空閑連接。httpclient自帶了SimpleHttpConnectionManager,提供了Java代碼 
closeIdleConnections(long idleTimeout) 

closeIdleConnections(long idleTimeout) 這樣的方法。 
如果不需要重用鏈接,則直接在httpmethod創建時,設置一個http頭信息就可以了 
Java代碼 
httpmethod.setRequestHeader("Connection", "close"); 

httpmethod.setRequestHeader("Connection", "close"); 
這樣就不會有惱人的close_wait了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM