使用選用的HTTP尾端標頭來啟用分段 Gremlin 回應 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用選用的HTTP尾端標頭來啟用分段 Gremlin 回應

根據預設,對 Gremlin 查詢的HTTP回應會在單一JSON結果集中傳回。如果結果集非常大,這可能會導致資料庫執行個體上發生 OutOfMemoryError 例外狀況。

不過,您可以啟用「區塊」回應 (以多個個別部分傳回的回應)。您可以在請求中包含轉移編碼 (TE) 尾端標頭 (te: trailers) 來執行此操作。如需 TE 標頭的詳細資訊,請參閱 MDNTE 請求標頭 ) 頁面。

當回應以多個部分傳回時,由於第一個部分的狀態HTTP碼為 200(OK),因此很難診斷收到第一個部分後發生的問題。後續失敗通常會產生包含損毀回應的訊息內文,而 Neptune 會在此內文結尾處附加錯誤訊息。

為了更輕鬆地偵測和診斷此類失敗,Neptune 還會在每個回應區塊的結尾標頭內包含兩個新的標頭欄位:

  • X-Neptune-Status – 包含回應碼,後面接著簡短名稱。例如,若成功,結尾標頭將是:X-Neptune-Status: 200 OK。若失敗,回應代碼將是其中一個 Neptune 引擎錯誤代碼,例如 X-Neptune-Status: 500 TimeLimitExceededException

  • X-Neptune-Detail – 對於成功的請求而言是空的。發生錯誤時,會包含JSON錯誤訊息。由於HTTP標頭值中只允許ASCII字元,因此JSON字串會URL編碼。

注意

Neptune 目前不支援對區塊回應進行 gzip 壓縮。如果用戶端同時要求區塊編碼和壓縮,Neptune 會略過壓縮。