您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
用戶端應用程式提出的 API 要求會先流經 Apigee Edge 中的各種元件,然後才傳送至後端服務。大多數用戶端應用程式都會預期這些要求的回應會及時收到。
為確保及時回應,我們會在 API 要求流經的每個元件中設定 I/O 逾時值。如果流程中的任何元件所需時間比前一個元件還長,前一個元件就會逾時,並回傳 504 閘道逾時錯誤。
設定逾時時,請務必謹慎地在各個元件中設定值,否則可能會導致 504 閘道逾時錯誤。
本文將說明在 Apigee Edge 中,針對 API 要求流經的各種元件設定 I/O 逾時的最佳做法。
設定 I/O 逾時的最佳做法
設定 I/O 逾時值時,請考慮下列最佳做法:
- 第一個元件:請務必在 API 要求流程中的第一個元件 (即 Apigee Edge 中的用戶端應用程式) 上,一律使用最高的逾時值。
- 最後一個元件:請一律在 API 要求流程中的最後一個元件 (即 Apigee Edge 中的後端服務) 上使用最短的逾時時間。
- 元件之間:請確認在流程中,每個元件中設定的逾時值在第一個元件和最後一個元件之間至少有 2 到 3 秒的差異。
- 路由器:建議您為特定虛擬主機設定 (修改) I/O 逾時值,而非在路由器上設定。這樣就能確保新的逾時值只會影響使用特定虛擬主機的 API Proxy,而不會影響 Router 提供的所有 API Proxy。
只有在您絕對確定需要新的 I/O 逾時值,或該值適用於在 Router 上執行的所有 API Proxy 時,才應設定 (修改) Router 上的 I/O 逾時值。
- 訊息處理器:建議您為特定 API 代理程式設定 (修改) I/O 逾時值,而非在訊息處理器上設定。這可確保新的逾時值只會影響特定 API Proxy,而不會影響訊息處理器所提供的所有 API Proxy。
只有在您絕對確定需要新的 I/O 逾時值,或該值適用於在訊息處理器上執行的所有 API Proxy 時,才應設定 (修改) 訊息處理器的 I/O 逾時值。
範例情境
本節中的情境可協助您瞭解如何正確設定 I/O 逾時值。
情境 1:直接從用戶端應用程式向 Apigee Edge 提出要求
本節說明在 Apigee Edge 設定中設定逾時值時應遵循的最佳做法,在這種設定中,用戶端應用程式與 Apigee Edge 之間,以及 Apigee Edge 與後端伺服器之間,都沒有中介元件。
沒有中介元件的 Apigee 設定範例
如果 Apigee Edge 的設定如上圖所示,且沒有中介元件,請採用下列最佳做法:
- 用戶端應用程式是流程中的第一個元件。應在用戶端上設定最高逾時時間值。
- 後端伺服器是流程中的最後一個元件。應在後端伺服器上設定最短逾時時間值。
- 請按照以下順序設定各個元件的逾時值:
以下範例顯示根據上述規範在各個元件上設定的逾時值,以避免發生任何問題:
情境 2:透過中介元件,從用戶端應用程式向 Apigee Edge 提出要求
本節說明在 Apigee Edge 設定中設定逾時值時應遵循的最佳做法,其中在用戶端應用程式與 Apigee Edge 之間,以及 Apigee Edge 與後端伺服器之間,都會有一或多個中介元件。
中間元件可以是負載平衡器、內容傳遞網路 (CDN)、NGINX 等。
Apigee 設定範例:在用戶端和 Apigee Edge 之間,以及 Apigee Edge 和後端伺服器之間各有一個中介元件
如果 Apigee Edge 的設定與上圖所示相同,即包含一或多個中介元件,請採用下列最佳做法:
- 用戶端應用程式是流程中的第一個元件。應在用戶端設定最高 逾時值。
- 後端伺服器是流程中的最後一個元件。應在後端伺服器上設定最低 逾時值。
- 請按照下列順序,在各個元件 (包括中介元件) 上設定逾時值:
以下範例顯示根據上述規範在各個元件上設定的逾時值,以避免發生任何問題: