注意设置httpclient连接数
在使用Httpclient的過程中,線上的酒店出現過一個問題,就是當訪問量增大的時候,會發現本地的連接等待時間急劇增加,例如從400ms增加到 78000ms,之前一直以為是航信系統問題,后面經過檢查才發現,原來是本地httpclient設置時,最大連接數采用了默認設置的原因,而默認的最 大連接數只有2個,所以當有大量連接需要建立時,大多數連接只有等待。后面將連接數設置修改成32個之后,這個響應時間就基本上很少出現很大的時候。
????? HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
?? ??? ?HttpConnectionManagerParams params = httpConnectionManager.getParams();
?? ??? ?params.setConnectionTimeout(5000);
?? ??? ?params.setSoTimeout(20000);
?? ??? ?params.setDefaultMaxConnectionsPerHost(32);//very important!!
?? ??? ?params.setMaxTotalConnections(256);//very important!!
?? ??? ?this.client = new HttpClient(httpConnectionManager);
?? ??? ?// 設置編碼
?? ??? ?this.client.getParams().setContentCharset(CharsetHelper.GBK);
?? ??? ?this.client.getParams().setHttpElementCharset(CharsetHelper.GBK);
我們一般很容易注意到設置超時時間,例如這里的紅色部分,但是極有可能忘記設置每個主機的最大連接數(綠色),因此大家注意一下,本來是最簡單的,但也最容易被忽略。
總結
以上是生活随笔為你收集整理的注意设置httpclient连接数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse代码自动提示
- 下一篇: LVS (DR, NAT)模式应用