0 0

httpclient 4 抓取 产生大量 close_wait,导致tomcat无响应5

  最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应。

我用的是 PoolingClientConnectionManager 做的连接词管理,
一会就产生大量close_wait,tomcat就没有响应了。

我在网上查了很多方法,
用closeIdleConnections(long idleTimeout)

加httpmethod.setRequestHeader("Connection", "close");   都不能解决这个问题。

而且发现用closeExpiredConnections()和.closeIdleConnections(idleTimeout, tunit) 时,连接池中连接数量达到100多的时间就变的很慢,达到200多的时间,还没执行完,tomcat就假死了。
2012年7月24日 15:03

1个答案 按时间排序 按投票排序

0 0

同时200个执行,性能估计会有问题。
建议做排队处理,对于后面进来的HTTP请求放到异步线程中分批执行。
如果想提高吞吐量,可以考虑优化下JVM的启动参数,配置线程数、最大内存、线程内存等参数。

2012年7月25日 10:12

相关推荐

    HttpClient4_Tutorial_API_Doc_En+Cn.rar

    《HttpClient4教程与API文档详解》 HttpClient是Apache软件基金会的一个开源项目,主要提供了一组与HTTP协议交互的客户端编程工具类,广泛应用于各种网络应用的开发中。HttpClient4.0.3是HttpClient的一个重要版本...

    HTTPClient_delphi_delphi7_ssl_

    4. HTTPClient.cfg - 配置文件,可能包含了HTTPClient库的设置,如代理服务器、连接超时等。 5. HTTPClient.conf - 另一个配置文件,可能存储了SSL证书、密钥和其他连接参数。 6. history.dat - 可能是保存用户历史...

    httpclient_4.5.3.jar_httpclient_4.5.3.jar_

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持...HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。

    WIFI_HTTPClient_ArduinoJson擷取_esp32_源码

    3. 数据接收:在`HTTPClient`的`available()`方法返回非零值时,读取服务器的响应。如果响应是JSON格式,可以保存到字符串变量中。 4. JSON解析:使用ArduinoJson库的`deserializeJson()`方法解析JSON字符串,将其...

    java-HttpClient学习,和解析html.zip

    java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_HttpClient学习,和解析htmljava_HttpClient学习,和解析html java_...

    HttpClient抓取网页Demo

    在本文中,我们将深入探讨HttpClient的基本用法,以及如何使用它来抓取网页内容。 首先,你需要在项目中引入HttpClient的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....

    HttpClient网页抓取工具包整合

    4. **响应处理**: - `CloseableHttpResponse`代表一个HTTP响应,包含了状态码、响应头和响应实体。 - 可以通过`getStatusLine()`获取状态码,`getAllHeaders()`获取所有头信息,`getEntity()`获取响应实体。 5. ...

    HttpClient_canalvwb_qthttpserver_levell6x_use_httpclient_

    在"HttpClient_canalvwb_qthttpserver_levell6x_use_httpclient_"这个标题中,我们可以推断这是一个关于如何在QT服务器(QTHttpServer)上使用HttpClient进行通信的示例。"canalvwb"可能是项目或团队名,而"levell6x...

    httpclient-closewait-samples:一个简单的示例,说明如何使用Apache HttpCommons Client避免在客户端进行CLOSE_WAIT连接

    因此,您将使那些CLOSE_WAIT连接处于挂起状态并声称已关闭。 要说明此行为,请查看此存储库中的示例。 简而言之,我们正在做的是: 在整个生命周期中创建一个连接管理器和一个HttpClient连接 创建15个线程以执行...

    HttpClient.zip_HTTP_c++ httpclass_c++ httpclient类_http client c+

    4. **处理响应**:HttpClient应该能够解析服务器的响应,包括状态码、响应头和响应体。可能有一个`parseResponse()`函数来完成这个任务。 5. **错误处理**:当请求失败或发生异常时,HttpClient应能提供错误信息。...

    java httpclient 抓取 数据 和jar 包

    在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...

    httpClient+jsoup抓取网页数据实例和jar包

    本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...

    httpClient4 最新帮助文档

    HttpClient 4 是一个由 Apache 软件基金会开发的Java库,用于执行HTTP请求并处理响应。这个库在Web服务和API交互、自动化测试、数据抓取等场景中广泛应用。最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、...

    tomcat httpclient包

    6. **响应处理**:HttpClient提供了解析和处理服务器响应的能力,包括响应状态码、头部信息、响应体等。 7. **日志记录**:通过Commons Logging,HttpClient可以在开发和调试过程中记录详细的运行信息,帮助定位...

    httpclient4

    《Java HttpClient 4详解》 Java HttpClient 4,也称为Apache HttpClient 4,是Apache软件基金会开发的一个HTTP客户端实现库,用于处理与HTTP服务器的交互。这个库在Java编程环境中广泛使用,尤其对于网络请求的...

    HttpClient由浅到深-打打磨rpc利器.pptx

    过多的 CLOSE_WAIT 可能表明客户端未正确关闭连接,或者 CPU 繁忙导致未及时执行 close。 三、最佳实践 在使用 HttpClient 进行 RPC 调用时,应遵循以下最佳实践: 1. **连接池管理**:使用连接池(如 HttpClient...

    httpclient-4.5.3官方API中文文档_最新译版_2886K

    4. 请求与响应处理:通过EntityUtils可以方便地处理请求和响应的实体内容,如读取、写入、转换等。 5. 异步请求:HttpClient提供异步执行请求的功能,可以实现非阻塞I/O,提高并发性能。 五、HttpClient的应用场景 ...

    Android-and-server.zip_android_tomcat

    4. **Tomcat服务器配置**:在Tomcat服务器上,我们需要配置Servlet来处理来自Android客户端的请求。这通常涉及编写Servlet类,处理GET和POST请求,以及在`web.xml`配置文件中定义Servlet映射。 5. **Android请求和...

Global site tag (gtag.js) - Google Analytics