注意設置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);

我們一般很容易注意到設置超時時間,例如這里的紅色部分,但是極有可能忘記設置每個主機的最大連接數(綠色),因此大家注意一下,本來是最簡單的,但也最容易被忽略。


免責聲明!

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



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