php小編蘋果為您帶來了一個關於KrakenD順序端點錯誤回應的介紹。 KrakenD是一個高效能的API網關,但在使用過程中,可能會遇到一些錯誤。其中,順序端點錯誤回應是常見問題。本文將詳細解釋順序端點錯誤回應的原因和解決方法,幫助您更好地應對這個問題,並提升API網關的穩定性和效能。
krakend版本:2.2.1 go版本:go1.19.3
我想使用 krakend 的順序功能將順序請求傳送到兩個不同的端點。
簡單總結一下我的案例:
順序端點範例:
#{ "endpoint": "/companies/validate", "method": "GET", {{ include "input_headers.txt" }}, "backend": [ { "host": ["{{ .service.credential_service_url }}"], "url_pattern": "/tokens/validate", "method": "GET", "extra_config": { "backend/http": { "return_error_code": true } } }, { "host": ["{{ .service.company_service_url }}"], "url_pattern": "/companies/{resp0_companyId}/validate", "method": "GET", "extra_config": { "backend/http": { "return_error_code": true } } } ], "extra_config": { "proxy": { "sequential": true } } }
ide日誌
郵差回覆
如您所見,第一個服務工作正常,第二個服務回傳錯誤,但郵差回應回傳成功。
這是 KrakenD 的預期行為。
當您執行多個呼叫時,如果至少有一個請求成功,KrakenD 將傳回任何可用內容以及 200 狀態碼。但作為交換,您會收到一個標題 X-KrakenD-Complete: false
告訴您某些事情失敗了。 您可以在此處閱讀有關聚合的更多資訊 p>
由於您使用的是順序代理,因此當第一個請求失敗時,無需執行任何其他操作,因為下一個順序呼叫將自動中止。因此,所有內容都會失敗,KrakenD 無法返回任何內容,這就是您獲得所需失敗的原因。
在另一種情況下,由於第一個呼叫有效,KrakenD 有一些東西要返回,並且您收到部分資料。
您應該檢查您的客戶端 X-KrakenD-Complete 標頭的內容來決定要做什麼
以上是KrakenD 順序端點錯誤回應的詳細內容。更多資訊請關注PHP中文網其他相關文章!