gpt4 book ai didi

java - tomcat 离开 time_wait 连接

转载 作者:行者123 更新时间:2023-11-28 22:02:40 29 4
gpt4 key购买 nike

我们使用 Apache 服务器作为前端服务器,使用 Tomcat 服务器作为后端。前端客户端是一个 java swing 应用程序。该协议(protocol)是粗麻布的。

有时我们会收到很多小请求。当执行“nestat -a”时,会出现很多 TIME_WAIT 连接,这些连接会阻止服务器打开新连接。似乎只保留与 tomcat 的连接。与 apache 的连接似乎已关闭。

我们正在使用重写规则将请求转发给 tomcat

RewriteEngine On
RewriteCond %{REQUEST_URI} .*\.servlet.*$
RewriteRule ^/(.*)$ http://localhost:8080/$1 [P]

有什么想法吗?

更新:

谢谢 for your advice ,

但是还是不行。每个流都已关闭,但仍然存在这些 TIME_WAIT:

if (conn != null) {
try {
IOUtils.closeQuietly(conn.getInputStream());
} catch (IOException e) {
// do nothing
}
try {
IOUtils.closeQuietly(conn.getOutputStream());
} catch (Exception ex) {
// do nothing
}
try {
IOUtils.closeQuietly(((HttpURLConnection) conn).getErrorStream());
} catch (Exception ex) {
// do nothing
}
}

if (conn instanceof HttpURLConnection) {
((HttpURLConnection) conn).disconnect();
}

最佳答案

很可能您在发出请求时没有关闭 Swing 应用程序中的输入/输出流。来自 here :

If the result is an InputStream, it is very important that the InputStream.close() be put in an finally block, because Hessian will not close the underlying HTTP stream until all the data is read and the input stream is closed.

关于java - tomcat 离开 time_wait 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065572/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com