什麼是速率限制?
速率限制是雲端 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
個要求之前等候多久。
若要避免節流,並確保應用程式保持回應,您應該在應用程式中實作速率限制。 根據您的技術堆疊,有不同的連結庫可協助您處理應用程式中的速率限制。 在應用程式中實作速率限制之後,請測試它是否正確處理速率限制。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應