最近專案上,有一次出現了某乙個ip下,出現了大量的tcp鏈結.
導致了服務端的其他請求,一直等待超時.
close_wait狀態的乙個很大可能性:當使用httpclient時,由於對方的伺服器突然中斷,導致在最後一步沒有收到返回資訊,就處於close_wait了。如果程式中沒有設定超時時間,那麼就會一直等待,不會結束close_wait狀態。
大量close_wait導致伺服器服務無響應
場景:最近併發較高,看到響應時間6s的時候,心裡咯噔一下,我記得我設定的超時時間是5s啊。
原來讀取超時時間沒生效,只生效了連線超時時間。
connectionpooltimeoutexception 獲取連線池連線超時
connectiontimeout:這定義了通過網路與伺服器建立連線的超時時間。httpclient包中通過乙個非同步執行緒去建立與伺服器的socket連線,這就是該socket連線的超時時間,此處設定為3秒。
將url改為乙個不存在的url,則會丟擲org.apache.commons.httpclient.connecttimeoutexception
sockettimeout:這定義了socket讀資料的超時時間,即從伺服器獲取響應資料需要等待的時間,此處設定為5秒。
這是個3.x的超時設定方法
4.3版本超時設定
httpget httpget=new httpget(「 get請求
requestconfig requestconfig = requestconfig.custom().setsockettimeout(2000).setconnecttimeout(2000).build();//設定請求和傳輸超時時間
httpclient.execute(httpget);//執行請求
以後再寫httpclient這兩個超時時間一定要加上,不加就很可能悲劇的了
java服務端http請求post 傳送資料量限制
align center 使用httpclient的post提交資料遇到的有關問題 align 使用httpclient的post方式提交資料,json字串,資料量大的時候,接收方結果死活接收不到。查詢發現是tomcat的預設配置導致的 tomcat6在預設狀態下最大的post請求是2m。可以採取兩...
AngularJs服務 http請求
http 本質是對xmlhttprequest物件封裝 開啟乙個鏈結 介面方式 soap restful 傳遞的資料可以是 key val key val 形式,這種形式叫formdata 當請求資料型別不一樣,後端在接收的時採取方法也不一樣 假如上述方式以php為例可以使用 post接收 requ...
HTTP服務端JSON服務端
最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...