什麼是速率限制?
速率限制是雲端 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
要求之前等待多久。
若要避免節流,並確保應用程式保持回應,您應該在應用程式中實作速率限制。 根據您的技術堆疊,有不同的連結庫可協助您處理應用程式中的速率限制。 在應用程式中實作速率限制之後,請測試它是否正確處理速率限制。