2016-03-23 15 views
2

Wir verwenden eine REST-Web-Anwendung geschrieben in Spring Boot & Java. Nach einiger Zeit der Systemnutzung und die offenen Ports auf den Server überprüft, es scheint, als ob wir ein Leck im Umgang mit den VerbindungenSpring Boot - schlechte TCP-Verbindung Handhabung

Netstat -nao haben | grep 4567

Das sich mit dem anhang ausgegeben, auch wenn kein Browser geöffnet ist und keine Verbindung wird für jede mögliche Unterstützung an den Server ich froh sein würde auf diesem aktiv gemacht, weil es scheint, dass Frühling die Verbindungen oder es wird falsche Handhabung könnte eine Fehlkonfiguration auf unserer Seite sein.

  • TCP 172.17.1.80:4567 172.18.11.36:54208 TIME_WAIT 0
  • (viel mehr solcher Einträge an unterschiedliche interne Ports)
  • TCP 172.17.1.80:4567 172.18.11.36:54209 CLOSE_WAIT 4756
  • (Viele weitere solcher Einträge an unterschiedliche interne Ports)
  • TCP 172.17.1.80:4567 172.18.11.36:54542 CLOSE_WAIT 4756
+0

nichts falsch mit dem TIME_WAIT Einträge, aber die CLOSE_WAIT diejenigen sind ein Fehler. – EJP

Antwort

1

die Frage der fac gewesen t die Httpresponse nicht geschlossen worden ist, ich HttpClientUtils.closeQuietly, dieses Problem zu beheben verwendet habe siehe unten:

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); 
    }