共用方式為


什麼是速率限制?

速率限制是雲端 API 用來規範使用者在特定時間範圍內提出要求數目的控制機制。 雲端 API 產生者會使用速率限制,以確保要求的流程不會讓服務負荷過大。 速率限制會設定 API 呼叫的速度和數量上限,通常是根據每個時段的要求來定義。

為何雲端 API 使用速率限制

  • 防止多載。 速率限制可確保 API 伺服器維持穩定且回應,方法是防止任何單一使用者或服務用太多要求來填滿它。
  • 確定公平使用。 速率限制會強制執行公平使用原則,確保沒有任何單一用戶獨佔 API 資源,允許對所有用戶進行公平存取。
  • 安全性。 它藉由限制來自潛在惡意來源的要求數目,協助降低 DDoS (分散式阻斷服務) 攻擊和其他濫用行為。
  • 成本管理。 對於雲端服務提供者,速率限制有助於防止無法預測或過度使用資源來管理營運成本。
  • 服務品質。 藉由防止流量尖峰,速率限制可確保所有使用者的服務品質一致。

您在應用程式中體驗速率限制的方式

當您建置整合雲端 API 的應用程式時,請檢查其檔案以確認它們是否支援速率限制。 如果這麼做,您會收到 RateLimit-...X-RateLimit-... 響應標頭,其中包含速率限制的相關信息。 您可以在應用程式中使用此資訊,以確保您未超過 API 的速率限制。 例如, RateLimit-Remaining 標頭表示目前窗口中剩餘的要求數目。 如果您收到此標頭設定為 0 的回應,您知道您已達到速率限制,而且應該在傳送另一個要求之前等候下一個視窗。 RateLimit-Reset標頭表示速率限制重設的時間。 請記住,某些 API 只會在達到臨界值之後傳送 RateLimit-... 標頭,例如,當您剩餘 10% 的要求時。

當您超過速率限制時,API 會節流傳回 HTTP 429 (太多要求) 狀態代碼的要求。 某些 API 也可能傳送標頭,指出您應該在傳送另一 Retry-After 個要求之前等候多久。

若要避免節流,並確保應用程式保持回應,您應該在應用程式中實作速率限制。 根據您的技術堆疊,有不同的連結庫可協助您處理應用程式中的速率限制。 在應用程式中實作速率限制之後,請測試它是否正確處理速率限制。

下一步