|
2
|
| Steven Schlansker · 技术社区 · 16 年前 |
|
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连接才能正确关闭。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |