設定 I/O 逾時的最佳做法

您正在查看 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 的設定如上圖所示,且沒有中介元件,請採用下列最佳做法:

  1. 用戶端應用程式是流程中的第一個元件。應在用戶端上設定最高逾時時間值。
  2. 後端伺服器是流程中的最後一個元件。應在後端伺服器上設定最短逾時時間值。
  3. 請按照以下順序設定各個元件的逾時值:

    在用戶端上設定逾時時間,然後在 Router、Message Processor 和 Backend Server 上設定逾時時間

    以下範例顯示根據上述規範在各個元件上設定的逾時值,以避免發生任何問題:

    將用戶端的逾時時間設為 60 秒,然後將路由器的逾時時間設為 57 秒,再將訊息處理器的逾時時間設為 55 秒,最後將後端伺服器的逾時時間設為 52 秒

情境 2:透過中介元件,從用戶端應用程式向 Apigee Edge 提出要求

本節說明在 Apigee Edge 設定中設定逾時值時應遵循的最佳做法,其中在用戶端應用程式與 Apigee Edge 之間,以及 Apigee Edge 與後端伺服器之間,都會有一或多個中介元件。

中間元件可以是負載平衡器、內容傳遞網路 (CDN)、NGINX 等。

Apigee 設定範例:在用戶端和 Apigee Edge 之間,以及 Apigee Edge 和後端伺服器之間各有一個中介元件

從用戶端開始的流程,會前往中繼元件 1,然後前往路由器、訊息處理器、中繼元件 2 和後端伺服器

如果 Apigee Edge 的設定與上圖所示相同,即包含一或多個中介元件,請採用下列最佳做法:

  1. 用戶端應用程式是流程中的第一個元件。應在用戶端設定最高 逾時值。
  2. 後端伺服器是流程中的最後一個元件。應在後端伺服器上設定最低 逾時值。
  3. 請按照下列順序,在各個元件 (包括中介元件) 上設定逾時值:

    在用戶端上設定逾時時間,然後依序在中介元件 1、路由器、訊息處理器、中介元件 2 和後端伺服器上設定逾時時間

    以下範例顯示根據上述規範在各個元件上設定的逾時值,以避免發生任何問題:

    將用戶端的逾時時間設為 63 秒,然後將中介元件 1 的逾時時間設為 60 秒,接著將路由器的逾時時間設為 57 秒,然後將訊息處理器的逾時時間設為 55 秒,接著將中介元件 2 的逾時時間設為 52 秒,接著將後端伺服器的逾時時間設為 59 秒