![Was sind die möglichen Ursachen für Layer 4- und Layer 7-Timeouts in HAProxy?](https://rvso.com/image/756803/Was%20sind%20die%20m%C3%B6glichen%20Ursachen%20f%C3%BCr%20Layer%204-%20und%20Layer%207-Timeouts%20in%20HAProxy%3F.png)
Ich kopiere meine Stackoverflow-Frage:https://stackoverflow.com/q/63683206/6344947
Ich habe gesehen, dass ich 503 für meine Anwendung bekam, als ich die APIs zugriff. Als ich die HAProxy LB-Statistiken für meine Instanzen überprüfte, stellte ich fest, dass eine davon ein Layer-4-Timeout und die andere ein Layer-7-Timeout zeigte.
Screenshot der HAProxy LB-Statistiken:
In den Instanzen lief ein Java-Prozess, der als Backend-Dienst fungierte. Beim Neustart des Prozesses stellte ich fest, dass alles wieder normal war.
Gibt es also eine Möglichkeit, herauszufinden, was die Ursache sein könnte? Könnte es auch an Speicherproblemen liegen? Ich habe mir die Protokolle angesehen, aber da war nichts mit OOM zu tun; außerdem hatten wir in der Vergangenheit in diesem Fall OOM-Probleme – aber damals habe ich die HAProxy-Statistiken nicht überprüft.
Jede Hilfe wäre willkommen.
Antwort1
Schicht 4 bedeutet, dass beim Warten auf TCP-Handshakes eine Zeitüberschreitung aufgetreten ist. Vielleicht ist der Server ausgefallen? Schicht 7 bedeutet, dass beim Warten auf eine HTTP-Antwort eine Zeitüberschreitung aufgetreten ist. Die Anwendung läuft also (wird vielleicht gestartet?), lauscht auf dem angegebenen Port und akzeptiert TCP-Verbindungen, hat aber nicht rechtzeitig eine HTTP-Antwort bereitgestellt. Vielleicht wird sie noch gestartet? Manche Java-Anwendungen brauchen mehrere Minuten, bis sie tatsächlich gestartet werden. Beide Fälle weisen eher auf ein Problem mit der Backend-Anwendung hin und nicht auf ein Problem mit Haproxy selbst. Ich würde sagen, es ist Zeit, die Protokolle dieser Java-Anwendung zu überprüfen.