本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用選用的HTTP尾端標頭來啟用分段 Gremlin 回應
預設情況下,對 Gremlin 查詢的HTTP回應會在單一JSON結果集中傳回。如果結果集非常大,這可能會導致資料庫執行個體上發生 OutOfMemoryError
例外狀況。
不過,您可以啟用「區塊」回應 (以多個個別部分傳回的回應)。您可以在請求中包含轉移編碼 (TE) 尾端標頭 (te: trailers
) 來執行此操作。如需 TE 標頭的詳細資訊,請參閱 MDNTE 請求
以多個部分傳回回應時,可能很難診斷收到第一個部分後發生的問題,因為第一個部分的狀態HTTP碼為 200
(確定)。後續失敗通常會產生包含損毀回應的訊息內文,而 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 會略過壓縮。