如何防止 Amazon OpenSearch Service 中的 HTTP 504 閘道逾時錯誤?
上次更新日期:2021 年 7 月 30 日
我正在嘗試解決 Amazon OpenSearch Service 中的 504 閘道逾時錯誤。該如何進行?
簡短描述
負載平衡器位於每個 OpenSearch Service 網域前方。負載平衡器會將傳入流量分配到資料節點。如果 OpenSearch Service 請求未完成,並在閒置逾時期間內傳回確認,負載平衡器會關閉 TCP 連線。因此,您會收到 HTTP 504 閘道逾時錯誤。HTTP 504 閘道逾時錯誤並不一定表示叢集有問題,只是表示該要求無法在閒置逾時期間內完成。
當您同時傳送太多請求,或傳送複雜的請求時,通常會發生閘道逾時錯誤。在這兩種情況下,結果都是相同的:OpenSearch Service 無法在閒置逾時期間內完成請求。
解決方案
使用下列一或多個方法來解決 HTTP 504 閘道逾時錯誤:
- 為您的 OpenSearch Service 索引啟用慢速日誌,然後指定記錄臨界值。慢速日誌可協助您判斷特定查詢是否需要很長的時間才能完成。如果是這樣,請調整查詢以解決 504 錯誤。如需詳細資訊,請參閱檢視 OpenSearch Service 慢速日誌。
- 減少 OpenSearch Service 必須查詢請求的資料量。這會減少請求完成所需的時間。
- 切換至較大的執行個體類型。如需詳細資訊,請參閱選擇執行個體類型和測試。
- 在您的應用程式中配置指數退避和重試機制,以便再次傳送逾時的請求。
- 使用大量請求,而不是個別請求。這可減少叢集的每個請求開銷。