![HAProxy 中第 4 層和第 7 層超時的可能原因有哪些?](https://rvso.com/image/756803/HAProxy%20%E4%B8%AD%E7%AC%AC%204%20%E5%B1%A4%E5%92%8C%E7%AC%AC%207%20%E5%B1%A4%E8%B6%85%E6%99%82%E7%9A%84%E5%8F%AF%E8%83%BD%E5%8E%9F%E5%9B%A0%E6%9C%89%E5%93%AA%E4%BA%9B%EF%BC%9F.png)
我正在複製我的 Stackoverflow 問題:https://stackoverflow.com/q/63683206/6344947
當我訪問 API 時,我發現我的應用程式收到了 503 錯誤。當我檢查實例的 HAProxy LB 統計資料時,我發現其中一個顯示第 4 層逾時,另一個顯示第 7 層逾時。
這些實例中有一個 Java 程序在其中運行,充當後端服務。重新啟動該過程後,我發現一切恢復正常。
那麼有什麼辦法可以查出可能的原因嗎?難道也是因為記憶體不足的問題嗎?我看過日誌,但是沒有任何與OOM相關的內容;另外,我們過去在該實例中遇到過 OOM 問題 - 但當時我沒有檢查 HAProxy 統計資料。
任何幫助,將不勝感激。
答案1
第 4 層意味著等待 TCP 握手超時,也許伺服器已關閉?第 7 層意味著等待 HTTP 應答逾時,因此應用程式正在運行(也許正在啟動?),偵聽指定連接埠並接受 TCP 連接,但沒有及時提供 HTTP 回應。也許它還在啟動?有些 Java 應用程式需要幾分鐘才能真正啟動。這兩種情況都表明後端應用程式有問題,而不是 haproxy 本身有問題。我想說是時候檢查這個 java 應用程式的日誌了。