設定 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。

    只有在您完全確定路由器上執行的所有 API Proxy 都需要或適用新的 I/O 超時值時,才可設定 (修改) 路由器上的 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. 依下列順序設定各元件的逾時值:

    依序在用戶端、路由器、訊息處理器和後端伺服器上設定逾時

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

    將用戶端逾時時間設為 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、路由器、訊息處理器、中繼元件 2 和後端伺服器的逾時時間設為 60 秒、57 秒、55 秒、52 秒和 59 秒