注意设置httpclient连接数
2016-06-18 20:51
393 查看
在使用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);
我们一般很容易注意到设置超时时间,例如这里的红色部分,但是极有可能忘记设置每个主机的最大连接数(绿色),因此大家注意一下,本来是最简单的,但也最容易被忽略。
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);
我们一般很容易注意到设置超时时间,例如这里的红色部分,但是极有可能忘记设置每个主机的最大连接数(绿色),因此大家注意一下,本来是最简单的,但也最容易被忽略。
相关文章推荐
- (1) Socket网络编程(C#)----TcpListener 与 TcpClient
- Httpservlet
- [机器学习笔记]Note6--神经网络:表达
- JAVA利用HttpClient进行POST请求(HTTPS)
- EZ的间谍网络(codevs 4093)
- HTTP协议首部字段transfer-encoding与content-length差异
- 【VS开发】【DSP开发】TCP和UDP数据包结构
- ios学习路线—iOS高级(TCP/IP协议)
- 互联网协议入门-通俗易懂的讲计算机网络5层结构
- “字节序”是个什么鬼? 大端 小端 主机字节序 网络字节序
- 一次完整的HTTP事务是怎样一个过程?
- 网络IP
- ios学习路线—iOS高级(HTTP协议)
- 首次使用树莓派2(安装系统+SSH+VNC+无线网络配置)
- Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- 获取iOS项目名称及版本号以及网络类型的方法
- 【bzoj4538】【HNOI2016】【网络】【树链剖分+线段树套堆】
- libevent http client post get
- 基于TCP的Socket 编程
- 机器学习之(一)LSTM和递归网络基础教程