精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HttpClient 與 Close_Wait

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
服務(wù)器A需要通過(guò)HttpClient去連接另一個(gè)系統(tǒng)B提供的服務(wù),運(yùn)行一段時(shí)間后拋出以下異常:java.net.SocketException: Connection reset by peer: socket write error close_wait。

服務(wù)器A需要通過(guò)HttpClient去連接另一個(gè)系統(tǒng)B提供的服務(wù),運(yùn)行一段時(shí)間后拋出以下異常:java.net.SocketException: Connection reset by peer: socket write error close_wait

在服務(wù)器B上運(yùn)行netstat命令,發(fā)現(xiàn)大量連接處于CLOSE_WAIT 狀態(tài)。

問(wèn)題分析:

簡(jiǎn)單來(lái)說(shuō)CLOSE_WAIT數(shù)目過(guò)大是由于被動(dòng)關(guān)閉連接處理不當(dāng)導(dǎo)致的。

我說(shuō)一個(gè)場(chǎng)景,服務(wù)器A會(huì)去請(qǐng)求服務(wù)器B上面的apache獲取文件資源,正常情況下,如果請(qǐng)求成功,那么在抓取完資源后服務(wù)器A會(huì)主動(dòng)發(fā)出關(guān)閉連接的請(qǐng)求,這個(gè)時(shí)候就是主動(dòng)關(guān)閉連接,連接狀態(tài)我們可以看到是TIME_WAIT。如果一旦發(fā)生異常呢?假設(shè)請(qǐng)求的資源服務(wù)器B上并不存在,那么這個(gè)時(shí)候就會(huì)由服務(wù)器B發(fā)出關(guān)閉連接的請(qǐng)求,服務(wù)器A就是被動(dòng)的關(guān)閉了連接,如果服務(wù)器A被動(dòng)關(guān)閉連接之后自己并沒(méi)有釋放連接,那就會(huì)造成CLOSE_WAIT的狀態(tài)了。

所以很明顯,問(wèn)題還是處在程序里頭。

原始代碼塊:

  1. try 
  2. client = HttpConnectionManager.getHttpClient(); 
  3. HttpGet get = new HttpGet(); 
  4. get.setURI(new URI(urlPath)); 
  5. HttpResponse response = client.execute(get); 
  6. if (response.getStatusLine ().getStatusCode () != 200) { 
  7. return null; 
  8. HttpEntity entity =response.getEntity(); 
  9.  
  10. if( entity != null ){ 
  11. in = entity.getContent(); 
  12. ..... 
  13. return sb.toString (); 
  14.  
  15. catch (Exception e) 
  16. e.printStackTrace (); 
  17. return null; 
  18. finally 
  19. if (isr != null){ 
  20. try 
  21. isr.close (); 
  22. catch (IOException e) 
  23. e.printStackTrace (); 
  24. if (in != null){ 
  25. try 
  26. <span style="color:#ff0000;">in.close ();</span> 
  27. catch (IOException e) 
  28. e.printStackTrace (); 

HttpClient使用我們常用的InputStream.close()來(lái)確認(rèn)連接關(guān)閉,分析上面的代碼,一旦出現(xiàn)非200的連接,這個(gè)連接將永遠(yuǎn)僵死在連接池里頭,因?yàn)閕nputStream得不到初始化,永遠(yuǎn)不會(huì)調(diào)用close()方法了。

 

通過(guò)代碼稍微修改,更嚴(yán)謹(jǐn)?shù)奶幚懋惓G闆r就可以解決問(wèn)題了:

  1. public static String readNet (String urlPath) 
  2. StringBuffer sb = new StringBuffer (); 
  3. HttpClient client = null
  4. InputStream in = null
  5. InputStreamReader isr = null
  6. HttpGet get = new HttpGet(); 
  7. try 
  8. client = HttpConnectionManager.getHttpClient(); 
  9. get.setURI(new URI(urlPath)); 
  10. HttpResponse response = client.execute(get); 
  11. if (response.getStatusLine ().getStatusCode () != 200) { 
  12. get.abort(); 
  13. return null; 
  14. HttpEntity entity =response.getEntity(); 
  15.  
  16. if( entity != null ){ 
  17. in = entity.getContent(); 
  18. ...... 
  19. return sb.toString (); 
  20.  
  21. catch (Exception e) 
  22. get.abort(); 
  23. e.printStackTrace (); 
  24. return null; 
  25. finally 
  26. if (isr != null){ 
  27. try 
  28. isr.close (); 
  29. catch (IOException e) 
  30. e.printStackTrace (); 
  31. if (in != null){ 
  32. try 
  33. in.close (); 
  34. catch (IOException e) 
  35. e.printStackTrace (); 

顯示調(diào)用HttpGet的abort,這樣就會(huì)直接中止這次連接,我們?cè)谟龅疆惓5臅r(shí)候應(yīng)該顯示調(diào)用,因?yàn)檎l(shuí)能保證異常是在InputStream in賦值之后才拋出的呢。

more:

首先我們知道,如果我們的服務(wù)器程序處于CLOSE_WAIT狀態(tài)的話,說(shuō)明套接字是被動(dòng)關(guān)閉的!

因?yàn)槿绻荂LIENT端主動(dòng)斷掉當(dāng)前連接的話,那么雙方關(guān)閉這個(gè)TCP連接共需要四個(gè)packet:

 

Client –-> FIN  –-> Server
Client <–- ACK  <–- Server
這時(shí)候Client端處于FIN_WAIT_2狀態(tài);而Server 程序處于CLOSE_WAIT狀態(tài)。
Client <–- FIN  <–- Server
這時(shí)Server 發(fā)送FIN給Client,Server 就置為L(zhǎng)AST_ACK狀態(tài)。
Client –-> ACK  –-> Server
Client回應(yīng)了ACK,那么Server 的套接字才會(huì)真正置為CLOSED狀態(tài)。

 

Server 程序處于CLOSE_WAIT狀態(tài),而不是LAST_ACK狀態(tài),說(shuō)明還沒(méi)有發(fā)FIN給Client,那么可能是在關(guān)閉連接之前還有許多數(shù)據(jù)要發(fā)送或者其他事要做,導(dǎo)致沒(méi)有發(fā)這個(gè)FIN packet。

通常來(lái)說(shuō),一個(gè)CLOSE_WAIT會(huì)維持至少2個(gè)小時(shí)的時(shí)間(這個(gè)時(shí)間外網(wǎng)服務(wù)器通常會(huì)做調(diào)整,要不然太危險(xiǎn)了)。如果有個(gè)流氓特地寫了個(gè)程序,給你造成一堆的CLOSE_WAIT,消耗

你的資源,那么通常是等不到釋放那一刻,系統(tǒng)就已經(jīng)解決崩潰了。

只能通過(guò)修改一下TCP/IP的參數(shù),來(lái)縮短這個(gè)時(shí)間:修改tcp_keepalive_*系列參數(shù)有助于解決這個(gè)問(wèn)題。

但是實(shí)際上,還是主要是因?yàn)槲覀兊某绦虼a有問(wèn)題,

 

more:

最近做httpclient做轉(zhuǎn)發(fā)服務(wù),發(fā)現(xiàn)服務(wù)器上總是有很多close_wait狀態(tài)的連接,而且這些連接都不會(huì)關(guān)閉,最后導(dǎo)致服務(wù)器沒(méi)法建立新的網(wǎng)絡(luò)連接,從而停止響應(yīng)。

后來(lái)在網(wǎng)上搜索了一下,發(fā)現(xiàn)解決的方法也很簡(jiǎn)單,如果想重用連接,那就使用連接管理器,從連接管理器里獲取連接,然后定時(shí)的用連接管理器來(lái)釋放空閑連接。httpclient自帶了SimpleHttpConnectionManager,提供了

 

Java代碼 

  1. closeIdleConnections(long idleTimeout)  

這樣的方法。

如果不需要重用鏈接,則直接在httpmethod創(chuàng)建時(shí),設(shè)置一個(gè)http頭信息就可以了

 

Java代碼

  1. httpmethod.setRequestHeader("Connection", "close");   

這樣就不會(huì)有惱人的close_wait了。

 

責(zé)任編輯:林琳
相關(guān)推薦

2015-03-27 10:18:25

TCP協(xié)議CLOSE_WAIT狀服務(wù)器異常

2011-08-25 14:00:48

close中文man

2011-08-24 10:24:26

CLOSE中文man

2024-08-20 08:05:14

WinformWndProc?Windows

2021-03-05 16:08:58

RestAPINET工具包

2025-02-05 08:02:31

Winform開發(fā)窗體

2011-08-25 16:57:51

iconv_close中文man

2011-05-26 15:52:31

sleep()wait()

2021-07-15 14:27:47

LinuxSocketClose

2014-08-08 09:39:40

httpClient

2021-06-06 13:07:06

.NETWindowsLinux

2021-06-05 23:41:47

NET異常 HttpClient

2009-06-16 13:22:59

SqlConnecti

2024-10-07 08:59:47

sleepwait線程

2024-08-29 09:11:38

GolangEOF連接池

2024-09-13 09:32:30

2022-01-09 17:38:32

goHttpClient 集群

2021-07-12 07:59:05

對(duì)象接口編程

2021-08-02 14:54:50

鴻蒙HarmonyOS應(yīng)用

2020-03-24 15:15:29

HttpClientOkHttpJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

成人久久久久| 国产天堂在线播放视频| 爽爽淫人综合网网站| 色99之美女主播在线视频| 久久久久久久久久久久久久久国产 | 欧美网站在线| 亚洲乱码国产乱码精品精| 性生活免费在线观看| 午夜激情在线| 国产欧美日韩麻豆91| 亚洲最大的成人网| 亚洲视频 欧美视频| 女同性一区二区三区人了人一 | 天天插天天射天天干| 国产精品xxx| 午夜激情综合网| 中文字幕精品一区日韩| 亚洲色欧美另类| 国产一区二区三区四| 国产xxx69麻豆国语对白| 欧美日韩一级在线观看| 精品国产一区二区三区久久久樱花 | 91av视频在线免费观看| 男人与禽猛交狂配| 精品久久一区| 亚洲国模精品一区| 国产亚洲aⅴaaaaaa毛片| 国产乱子伦农村叉叉叉| 国产区在线观看| 国产日韩亚洲欧美综合| 国产一区二区无遮挡| av在线亚洲天堂| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久精品视频va| 青青草视频播放| 亚洲乱码一区| 日韩一区二区三区四区| 国产欧美一区二| 日本精品网站| 色域天天综合网| 亚洲 欧美 日韩 国产综合 在线| 欧美卡一卡二| 一区二区激情小说| 日韩视频一二三| 黄色网在线看| 亚洲天堂精品视频| 一区二区精品在线观看| 3d成人动漫在线| 国产情人综合久久777777| 老牛影视免费一区二区| 亚洲欧洲国产综合| 99久免费精品视频在线观看| 国产区二精品视| 欧美一级特黄aaaaaa| 成人国产亚洲欧美成人综合网| 亚洲自拍av在线| 国产黄a三级三级三级| 国产黄色精品网站| 99三级在线| 亚洲免费成人网| 成人18视频日本| 狠狠干一区二区| 亚洲日本香蕉视频| 国产三级欧美三级| 亚洲国产精品综合| 国产手机在线视频| 丁香花在线高清完整版视频| 亚洲另类在线视频| www.好吊操| 人人草在线视频| 色欧美乱欧美15图片| 久久久久国产一区| 爱情电影网av一区二区| 欧美一级精品在线| 青青草视频网站| 曰本一区二区三区视频| 在线观看国产精品日韩av| 手机免费观看av| 午夜精品国产| 欧美亚洲日本黄色| 中文字幕日日夜夜| 国产精品1区二区.| 久久久久久国产精品免费免费| 国产福利电影在线| 1024成人网| 黄网站欧美内射| yy6080久久伦理一区二区| 欧美一区二区三区白人| 欧美 日本 国产| 久久在线视频免费观看| 久久久噜久噜久久综合| 波多野结衣视频观看| 精品亚洲成a人| 久久av一区二区三区漫画| 91caoporn在线| 午夜精品在线看| 色噜噜狠狠一区二区| 国产福利资源一区| 正在播放欧美视频| 日韩av在线天堂| 欧美电影免费看| 欧美中文字幕不卡| wwwww在线观看| 国产一区二区区别| 久久国产精品电影| 中文字幕精品无码一区二区| 国产综合久久久久久鬼色| 加勒比在线一区二区三区观看| 丁香婷婷在线观看| 亚洲成a人在线观看| 久久视频在线直播| 中文字幕免费高清在线| 奇米影视777在线欧美电影观看| 日日噜噜噜夜夜爽亚洲精品 | 第一福利永久视频精品| 涩多多在线观看| 欧美色女视频| 欧洲成人免费视频| www.激情五月.com| 国产精品乱码一区二区三区软件| 久草热视频在线观看| 国产一区二区久久久久| 色悠悠久久88| 日本久久综合网| 99久久精品情趣| 亚洲精品一二三| 欧美国产日韩xxxxx| 中文字幕av资源| 26uuu色噜噜精品一区| www.一区二区.com| 高清日韩av电影| 亚洲成人资源在线| aaaaaaaa毛片| 99tv成人| 国产在线精品播放| h视频网站在线观看| 欧美性猛交xxxx富婆| 亚洲天堂美女视频| 黄色工厂这里只有精品| 亚洲自拍偷拍第一页| 午夜免费播放观看在线视频| 91成人在线精品| 这里只有久久精品| 久久福利一区| 精品一区二区不卡| 电影在线观看一区| 亚洲国产欧美一区二区丝袜黑人 | 久久久精品人妻一区二区三区| 婷婷久久综合| 成人免费自拍视频| 久操视频在线观看| 日韩一区二区免费在线电影| 91麻豆精品成人一区二区| 国产自产高清不卡| 好色先生视频污| 精品网站999| 成人h版在线观看| 欧美精品亚洲精品| 在线手机中文字幕| 亚洲欧美日韩中文在线| 在线视频精品免费| 亚洲国产成人在线| 岛国av免费在线| 中文字幕乱码亚洲无线精品一区| 亚洲综合第一页| 成人福利电影| 亚洲精品按摩视频| 天天干天天操天天操| 国产精品黄色在线观看| 一级片免费在线观看视频| 激情欧美日韩| 欧美欧美一区二区| 国产三级一区| 欧美日韩第一页| 深夜福利免费在线观看| 欧美亚洲综合另类| 国产一二三四区| 99国产精品99久久久久久| 国产精品69页| 久久精品青草| 国产精品一级久久久| 免费电影日韩网站| 色黄久久久久久| 亚洲国产999| 日本乱人伦aⅴ精品| 日韩高清dvd碟片| 北条麻妃国产九九精品视频| 天堂中文视频在线| 亚洲色图二区| 开心色怡人综合网站| 91麻豆精品一二三区在线| 欧美国产日本在线| 国际av在线| 日韩一区二区电影网| 日本三级2019| 国产精品女人毛片| 亚洲精品无码一区二区| 日韩成人一区二区三区在线观看| 国产精品啪啪啪视频| 亚洲区小说区| 97免费高清电视剧观看| 成人不卡视频| 欧美在线不卡区| 在线三级电影| 曰本色欧美视频在线| 日韩在线观看视频网站| 欧美人妇做爰xxxⅹ性高电影| 日韩激情在线播放| 亚洲欧美成aⅴ人在线观看| a级在线观看视频| 国产成人免费在线| 国产乱码一区二区三区四区| 天堂影院一区二区| 免费看日本毛片| 国内久久精品| 26uuu成人| 日韩欧美午夜| 日本一区二区三区四区高清视频 | 国产精品 欧美精品| 午夜欧美福利视频| 亚洲日本视频| www.激情网| 99久久综合| 日韩欧美亚洲日产国产| 日韩精品免费一区二区三区竹菊| av成人综合网| 精品久久国产一区| 成人黄色网免费| 精品免费av一区二区三区| 欧美综合激情网| 欧美男人天堂| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 捆绑调教美女网站视频一区| 日韩 欧美 高清| 国产日韩欧美三区| 黄色一级片在线看| 国产精品亚洲一区二区在线观看| 国产91色在线免费| 在线手机中文字幕| 亲子乱一区二区三区电影 | 国产免费一区二区三区在线观看| 成人午夜电影在线观看| 亚洲男人天堂2019| 男人的天堂在线视频| 亚洲欧美日韩精品| 国产专区在线| 这里只有精品久久| 在线免费av电影| 日韩亚洲综合在线| 免费黄网站在线播放| 久久伊人精品一区二区三区| 国产在线69| 裸体女人亚洲精品一区| 伊人手机在线| 久久久噜噜噜久久久| 欧美aaaaa性bbbbb小妇| 国产成人精品视频| 成人在线黄色| 92国产精品久久久久首页 | 欧美精品欧美精品系列c| 精品在线99| 五月天亚洲综合| 99精品在线免费在线观看| 国产人妻人伦精品| 亚洲精选国产| 国产免费视频传媒| 蜜桃一区二区三区四区| 熟妇无码乱子成人精品| a亚洲天堂av| 懂色av蜜桃av| 亚洲免费观看高清完整版在线| 久久精品国产亚洲av麻豆色欲| 欧美日韩国内自拍| 无码人妻丰满熟妇精品区| 欧美日韩三级在线| 超碰福利在线观看| 日韩高清不卡av| 在线毛片网站| 久久久久亚洲精品国产| 日韩福利一区| 5g影院天天爽成人免费下载| 久久超级碰碰| 亚洲图片小说在线| 激情欧美丁香| 三级av免费观看| 国产凹凸在线观看一区二区| v8888av| 亚洲三级久久久| 久久一区二区三区视频| 欧美精三区欧美精三区| 亚洲精品喷潮一区二区三区| 中日韩美女免费视频网址在线观看| 午夜激情在线| 国产精品美女呻吟| 精品三级av| 在线精品亚洲一区二区| 国产日韩综合| 中文字幕一区二区三区四| 久久久精品免费观看| 波多野结衣在线网址| 欧美性猛交xxxx黑人| 亚洲国产精品国自产拍久久| 伊人久久男人天堂| 91精品国产黑色瑜伽裤| 成人有码在线播放| 精品高清久久| 欧美日韩亚洲一| 成人小视频免费在线观看| 国产又粗又猛又爽又黄的视频四季 | 超碰国产精品一区二页| 美媛馆国产精品一区二区| 欧美日韩一区二区高清| 国产日韩欧美久久| 久久免费精品国产久精品久久久久| 毛片a片免费观看| 在线成人高清不卡| 成人免费在线视频网| 18一19gay欧美视频网站| 99国产精品久久一区二区三区| 一区二区三区四区国产| 模特精品在线| 久久久久国产精品区片区无码| 一区二区国产视频| 99热这里只有精品在线| 中文字幕日韩精品在线| 播放一区二区| 日本福利一区二区三区| 亚洲一区二区成人| 99re这里只有| 亚洲大片精品永久免费| 国内精品久久久久久久久久| 久久精品国产亚洲精品2020| 国语自产精品视频在线看抢先版结局 | 97视频在线观看网址| 91麻豆精品激情在线观看最新| 99re8这里只有精品| 极品美女销魂一区二区三区 | 色偷偷一区二区三区| 五月婷婷丁香花| 97在线观看免费| 欧美大奶一区二区| 国产a级片网站| 99天天综合性| 日韩欧美三级在线观看| 亚洲电影免费观看高清完整版在线观看| 在线观看a级片| 97超级碰碰| 一区二区视频欧美| bl动漫在线观看| 欧美午夜电影在线| 精品福利视频导航大全| 国产精品91久久| 国产精品久久久久久麻豆一区软件| 欧美美女一级片| 亚洲欧洲国产日本综合| 99久久久国产精品无码网爆| 九九综合九九综合| 久久精品色综合| 欧美污视频网站| 国产精品毛片a∨一区二区三区 | 日韩国产一区三区| 伊人久久国产| 亚欧精品在线| 国产乱码精品一区二区三区忘忧草 | 日韩av无码一区二区三区不卡| 亚洲高清免费视频| 午夜福利一区二区三区| 国产精品av在线播放| 欧美日一区二区| 宇都宫紫苑在线播放| 亚洲高清久久久| 青青草免费观看免费视频在线| 国产精品xxx视频| 91日韩视频| 久久人妻少妇嫩草av蜜桃| 欧美日韩国产一中文字不卡| 懂色一区二区三区| 99久久国产免费免费| 国产精品入口66mio| 天堂网中文在线观看| 欧美成人三级在线| 亚洲www.| 国产尤物av一区二区三区| 久久综合九色综合97婷婷| 日韩不卡高清视频| 欧美丰满片xxx777| 亚洲69av| 亚洲自拍第三页| 欧美日韩视频免费播放| 免费超碰在线| 久久免费一区| 国产一区二区调教| 香蕉影院在线观看| 欧美成人全部免费| 免费精品国产| 少妇极品熟妇人妻无码| 欧美综合久久久| 精品众筹模特私拍视频| 日韩妆和欧美的一区二区| 国产91丝袜在线18|