2
|
Steven Schlansker · 技术社区 · 15 年前 |
![]() |
1
2
对你遇到的问题可以进行很好的讨论。 here . 在Tomcat端,默认情况下它将使用 SO_REUSEADDR 选项,它将允许服务器重用及时等待的套接字。此外,默认情况下,ApacheHTTP客户机将使用keep alives,并尝试重用连接。 你的问题似乎是由不打电话引起的 releaseConnection 在httpclient上。这是重新使用连接所必需的。否则,连接将保持打开状态,直到垃圾收集器来并关闭它,或者服务器断开keep-alive。在这两种情况下,它都不会返回池中。 |
![]() |
2
1
由于每秒有数百个连接,而且不知道连接保持打开、执行它们的操作、关闭和回收的时间有多长,我怀疑这只是您将要遇到的一个问题。你能做的一件事就是
更新问题:
一个奇怪的问题是:您允许的最大连接总数和每个主机的连接数是多少?
|
![]() |
3
0
因此,您触发的请求数超过了允许打开的TCP/IP端口数。我不做httpclient,所以我不能详细讨论这个问题,但理论上,这个特定问题有三种解决方案:
|
![]() |
4
0
因此,问题是,另一个httpclient实例意外地没有使用我实例化的多线程dhttpConnectionManager,所以我实际上根本没有速率限制。修复此问题修复了引发的异常。 不过,谢谢所有的建议! |
![]() |
5
0
即使我们调用httpclientutils.closequiely(client);但是在您的代码中,如果试图从httpResponse实体(如inputstream contentstream=httpResponse.getEntity().getContent())中读取内容,则应该关闭inputstream,然后只有httpclient连接才能正确关闭。 |
![]() |
Abhishek · angular中json对象的动态头和内容解析 6 年前 |
![]() |
App2015 · c中的http客户端后异步# 6 年前 |
![]() |
Mohsen · 将图片上载到oData web服务 6 年前 |
![]() |
Hunt · 单例httpclient与创建新httpclient请求 7 年前 |
|
ek0 · 使用在java中发送https请求。pem文件 7 年前 |