Spring启动 - 错误的TCP连接处理

时间:2016-03-23 12:07:21

标签: java http spring-boot tcp

我们正在使用Spring Boot& amp;写的REST Web应用程序。 Java的。 经过一段时间的系统使用并检查到服务器的开放端口,似乎我们在处理连接时有漏洞

  

Netstat -nao | grep 4567

即使没有打开浏览器且没有主动连接到服务器,也会返回附加的输出 我很高兴能得到任何帮助,因为Spring似乎错误地处理了连接,或者它可能是我们方面的错误配置。

  • TCP 172.17.1.80:4567 172.18.11.36:54208 TIME_WAIT 0
  • (更多此类条目到不同的内部端口)
  • TCP 172.17.1.80:4567 172.18.11.36:54209 CLOSE_WAIT 4756
  • (更多此类条目到不同的内部端口)
  • TCP 172.17.1.80:4567 172.18.11.36:54542 CLOSE_WAIT 4756

1 个答案:

答案 0 :(得分:1)

问题是HttpResponse尚未关闭,为了解决这个问题,我已经使用了HttpClientUtils.closeQuietly,见下文:

HttpResponse response = null;
    try {
        response = client.execute(createHttpRequest(url, timeOut));
        StringBuilder result = new StringBuilder();
        try (BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) {
            String line;
            while ((line = rd.readLine()) != null) {
                result.append(line);
            }
        }
        return result;
    } catch (org.apache.http.conn.HttpHostConnectException e) {
        throw new HostUnreachableException(e);
    } finally {
        HttpClientUtils.closeQuietly(response);
    }