`
javahigh1
  • 浏览: 1276713 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

注意设置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工具

    同时,注意设置合理的连接超时、读取超时等参数,以应对网络延迟或服务器响应慢的情况。 至于"Grabticket"这个场景,可能是模拟抢票应用,这时可能需要在短时间内发送大量POST请求到服务器,以尝试获取稀缺资源。在...

    httpclient

    可以通过设置连接超时、读写超时、最大连接数、连接复用策略等来优化HttpClient的性能。 10. **异步操作**: HttpClient也支持异步操作,通过`HttpAsyncClient`类,可以在回调函数中处理响应,适合于高并发场景。...

    Java获取MQ连接数的Demo.zip

    这个压缩包“Java获取MQ连接数的Demo.zip”提供了一个简单的Java示例,用于展示如何通过编程方式获取RabbitMQ服务器的连接数。以下是对这个Demo的详细解释: 首先,为了与RabbitMQ交互,我们需要引入RabbitMQ的Java...

    httpclient4.5.5所有包

    - 对于高并发场景,应适当调整连接池参数,如最大连接数、超时时间等。 HttpClient 4.5.5 作为一个成熟的 HTTP 客户端库,不仅提供了丰富的功能,还具有良好的可扩展性和灵活性。开发者可以根据具体需求对其进行...

    httpclient4.5 jar包

    通过配置最大连接数、每个路由的最大连接数以及连接超时等参数,可以有效控制资源使用。 4. **异步编程支持** HttpClient 4.5提供了`AsyncHttpClient`类,支持异步操作。异步请求返回`Future<HttpResponse>`对象,...

    Httpclient依赖包

    连接管理器可以设置超时、重试策略、最大连接数等参数。 3. **身份验证**:HttpClient支持多种身份验证机制,包括基本认证、摘要认证、NTLM、Kerberos等,能够处理跨域和多层代理的认证问题。 4. **Cookie管理**:...

    HTTPClient

    // 将每路由最大连接数设为20 CloseableHttpClient httpClient = HttpClients.custom() .setConnectionManager(cm) .build(); ``` **2.3 通过API配置超时** 在HttpClient 4.3及更高版本中,可以使用更高级的API...

    HttpClient 4.0中文教程

    - **连接参数**: 连接参数用于控制连接的行为,如最大连接数、连接超时时间等。 **2.2 持久连接** - **持久连接**: HTTP/1.1默认使用持久连接,这意味着在一个TCP连接上可以发送多个请求。 **2.3 HTTP连接路由** ...

    java httpclient工具

    // 每个路由的最大连接数 CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(connectionManager).build(); ``` 6. **重试策略** HttpClient还提供了重试机制,当请求失败时自动重试...

    org.apache.commons.httpclient资源包(4.2)

    它允许设置连接池大小,控制并发连接数,以及配置超时参数,以优化网络通信。 3. **多部分文件上传**:在处理POST或PUT请求时,HttpClient支持多部分文件上传,这对于上传多个文件到Web服务器非常有用。它可以处理...

    JavaHttpClient

    - 连接池:使用`PoolingHttpClientConnectionManager`管理HTTP连接,可设置最大连接数、超时时间等。 - 请求路由:通过`HttpRequestExecutor`和`HttpClientConnectionManager`处理请求路由和重试策略。 4. **请求...

    httpclient-4.1.2.jar

    它还支持连接池,允许开发者配置最大连接数、超时时间等参数,以优化资源使用。 3. **异步处理**:除了传统的同步请求模式,HttpClient还提供了异步请求模式,使得在网络通信中可以实现非阻塞操作,提升应用的响应...

    httpclient 4.3 中文版

    1. **基于 HttpCore**:HttpClient 是基于 HttpCore 实现的客户端 HTTP 传输类库,这意味着它能够处理 HTTP 协议的基本层面,包括连接管理、请求序列化和响应解析等。 2. **传统 IO 模型**:它基于传统的阻塞式 I/...

    HttpClient4.3.3及其依赖的包

    2. **正确配置连接池**:合理设置连接池的最大连接数和超时时间,防止资源耗尽或长时间等待。 3. **异常处理**:对可能抛出的网络异常进行妥善处理,确保程序的健壮性。 4. **性能优化**:根据实际需求选择同步或...

    最新官方资源httpclient-4.1.3.jar和httpcore-4.1.4.jar

    4. 性能优化:根据实际需求调整HttpClient的配置参数,如连接超时时间、最大连接数等。 总的来说,HTTPClient和HTTPCore是Java进行HTTP通信的重要工具,它们提供了强大的功能和灵活性,使得开发者能够方便地与远程...

    httpClient

    - **连接池管理**:长期运行的服务应使用连接池,避免过多的连接创建和销毁,同时要注意设置合理的最大连接数和超时时间。 - **性能优化**:根据需求调整并发数,合理设置读写超时,避免阻塞。 - **安全性**:处理...

    httpclient4.5.6及相关core包mine包

    这可以通过`PoolingHttpClientConnectionManager`类实现,可以设置最大连接数、超时时间等参数。 2. **请求和响应处理**:HTTPClient支持GET、POST以及其他HTTP方法,同时可以处理HTTP头、Cookie、身份验证等。`...

    apache-commons-httpclient.jar

    2. **连接管理**:HttpClient 提供了`HttpConnectionManager`接口,用于管理与服务器的持久连接,优化性能,如复用连接、控制最大并发连接数等。`SingleClientConnManager`和`MultiThreadedHttpConnectionManager`是...

    httpclient-4.2.5.jar

    四、使用HttpClient-4.2.5.jar的注意事项 1. 性能优化:虽然HttpClient功能强大,但在现代Android环境中,可能不如Volley或OkHttp高效。因此,考虑性能和维护成本时,建议逐步迁移至更现代的库。 2. 兼容性问题:...

Global site tag (gtag.js) - Google Analytics