info-icon


配額與速度限制指南

FedEx 每天都會收到成千上萬的 API 請求。我們採用三種節流機制來管理偌大的數量。配額、速度限制和閾值的作用是希望有效地分配 FedEx 資源。

配額乃按每個組織和每個 API 項目的基礎來定義。

 

每個組織的配額

交易配額是組織在一天之內可提交之 API 請求的數量上限。換言之,API 消費者應考慮單一組織所有項目發起的 API 請求總數。不論 FedEx API 回應發回的數據量多寡,每個請求都是同等計算的。

例如:組織的配額為每日 500,000 個 API 請求。如果組織在一日當中的頭幾個小時,便提交了 500,000 個請求,即達到配額。在當天其餘時間,直至翌日為止,每個請求都會發回錯誤代碼「429 – 請求過多 – 超出每日交易配額。請在 12:00AM GMT 後再試」

 

每個 API 項目的配額

此配額會在兩個不同層級套用:項目和功能。

功能是指甚麼?

根據其提供的功能對每個API進行分組。每個功能組都是一個或多個端點的集合。例如, 「基礎集成可見性」功能有6個API端點,而「地址驗證」功能只有1個API端點。

查詢功能預設的每項目每功能 (PCPP) 配額限制為每日 100,000 個請求。這意味著當組織內任何項目通往查詢功能 6 個端點任何之一的流量,累計超出這個限制的時候,我們便會向您發送「429 請求過多」錯誤,直至當日結束為止。這適用於該 6 個端點任何之一的所有後續查詢請求

例子:如項目每次查詢功能 (6 個端點) 限制為 100,000,則全部 6 個端點的交易總數均會計算入 100,000 的限制內。如果您的項目超出限制,則進行後續的查詢交易時,您會在當日餘下時間收到「429 – 請求過多 - 超出每日交易配額」的錯誤代碼,直至 12:00AM GMT 為止。

 

速度限制

每個項目都設有交易速度限制,10 秒鐘內最多有 1,400 宗交易。如果在每個 10 秒鐘時間範圍內超出此交易上限,便會套用節流限制措施。

如果在頭數秒內已達到這個限制,則 10 秒範圍內其餘秒數傳送的任何交易將被節流。在此節流期間,將傳回錯誤代碼「429 – 請求過多」。

如果FedEx在頭2秒內收到1400個請求,則接下來8秒的任何後續交易將被節流,並返回錯誤訊息「429 –我們在短時間內收到太多請求。請稍等一會,然後再嘗試。」

10 秒鐘過去後,節流限制將會撤除,另一個計數器會開始追蹤接下來 10 秒內的請求數量。

 

閾值

閾值會在 IP 位址層級套用,以維持 FedEx API 授權流程的彈性。此機制僅適用於 Auth 令牌生成服務。閾值共有兩類:

  1. 突發閾值:每秒 3 次點擊,在 5 秒鐘內持續
  2. 平均閾值:每秒 1 次點擊,在 2 分鐘內持續
  • 當公共 IP 位址超出任何上述閾值限制時,該等 IP 位址將被罰停 10 分鐘,如果在這 10 分鐘期間出現任何進一步的請求,將收到「403 禁止」狀態代碼
  • 如 API 消費者在罰停時間內,繼續超出任何閾值限制,則罰停時間將會延長。API 用戶只要在接下來 10 分鐘不超出閾值限制,即可結束罰停時間
  • 閾值機制以用戶公共 IP 位址為基礎。如用戶在一個公共 IP 背後,設置了 10 個虛擬機事例,則所有來自該 IP 位址的請求都會計算入閾值限制內

 

流量管理

這三項機制分別應對流量管理的某個獨特範疇:

  • 配額會在組織層級套用:組織內所有 API 產生的綜合流量,將受此交易配額限制。

  • 配額會在項目層級套用:項目內一個 API 功能產生的綜合流量,將受此交易配額限制。

  • 速度限制會在項目層級套用:項目內所有 API 產生的綜合流量,將受此速度限制約束。

  • 閾值會在 IP 地址層級套用。

備註:FedEx 可能會下調上述任何節流機制的限制,以防止誤用、過量使用及濫用情況。FedEx 有權在不事先通知的情況下更改分配,以維持 API 消費者之間的均等存取,以及有效地分配 FedEx 資源。


常見問答

同一個組織之下,來自不同項目的所有 API 交易都會算入配額中嗎?
配額是在組織層級套用的。在同一個組織下,您可以有一個或以上的項目;在每個項目下,則可以有一個或以上的 API。因此,來自不同項目之所有 API 生成的綜合流量,全部屬於同一個組織,並都會算入每日配額中。

如果超出配額和速度限制均發回了相同的 429 錯誤,我如何識別是違反了哪個?
您可以閱讀錯誤訊息以識別實際違反事項。

 

違規 錯誤訊息
按組織配額 請求過多:超出每日交易配額。請在 12:00AM GMT 後再試
按 API 項目配額 請求過多:超出項目的每日配額。請在 12:00AM GMT 後再試
速度限制 請求過多:超出速度限制閾值。請在 10 秒後再試
   

超出閾值限制的解決方法是?
OAuth 令牌的有效期為一小時。我們建議 API 消費者在整個小時內使用該令牌,然後等到令牌逾期後,再請求新的令牌。

有沒有超出閾值限制的例子?
5 秒和 2 分鐘分別是突發閾值和平均閾值的觀察期。在這些觀察期間,如果某個 IP 位址超出了這兩項閾值限制之一,便會受到閾值懲罰。

例如:如果某個 IP 位址每秒有 3 次點擊,持續 2 秒,然後點擊率跌至每秒 3 次點擊以下,則不算超出突發閾值。然而,若 IP 位址每秒有 3 次點擊,持續 5 秒,然後點擊率變成 5 秒內有 15 次點擊,則超出了 5 秒內有 14 次點擊的突發閾值。