如何防止 Amazon OpenSearch Service 中的 HTTP 504 閘道逾時錯誤?

上次更新日期:2021 年 7 月 30 日

我正在嘗試解決 Amazon OpenSearch Service (Amazon Elasticsearch Service 的後置項) 中的 504 閘道逾時錯誤。該如何進行?

簡短描述

負載平衡器位於每個 OpenSearch Service 網域前方。負載平衡器會將傳入流量分配到資料節點。如果 OpenSearch Service 請求未完成,並在閒置逾時期間內傳回確認,負載平衡器會關閉 TCP 連線。因此,您會收到 HTTP 504 閘道逾時錯誤。HTTP 504 閘道逾時錯誤並不一定表示叢集有問題,只是表示該要求無法在閒置逾時期間內完成。

當您同時傳送太多請求,或傳送複雜的請求時,通常會發生閘道逾時錯誤。在這兩種情況下,結果都是相同的:OpenSearch Service 無法在閒置逾時期間內完成請求。

解決方案

使用下列一或多個方法來解決 HTTP 504 閘道逾時錯誤:

  • 為您的 OpenSearch Service 索引啟用慢速日誌,然後指定記錄臨界值。慢速日誌可協助您判斷特定查詢是否需要很長的時間才能完成。如果是這樣,請調整查詢以解決 504 錯誤。如需詳細資訊,請參閱檢視 Amazon OpenSearch Service 慢速日誌
  • 減少 OpenSearch Service 必須查詢請求的資料量。這會減少請求完成所需的時間。
  • 切換至較大的執行個體類型。如需詳細資訊,請參閱選擇執行個體類型和測試
  • 在您的應用程式中配置指數退避和重試機制,以便再次傳送逾時的請求。
  • 使用大量請求,而不是個別請求。這可減少叢集的每個請求開銷。