Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Ratenbegrenzung ist ein Steuerungsmechanismus, den Cloud-APIs verwenden, um die Anzahl der Anforderungen zu regulieren, die ein Benutzer in einer bestimmten Zeit stellen kann. Cloud-API-Produzenten verwenden Die Ratelimitierung, um sicherzustellen, dass der Fluss von Anforderungen den Dienst nicht überfordert. Die Ratenbegrenzung legt eine Obergrenze für die Geschwindigkeit und das Volumen von API-Aufrufen fest. Ratenlimits werden in der Regel in Form von Anforderungen pro Zeitraum definiert.
Gründe für die Verwendung von Cloud-APIs zur Begrenzung der Rate
- Überladung verhindern. Durch die Ratenbegrenzung wird sichergestellt, dass der API-Server stabil und reaktionsfähig bleibt, indem verhindert wird, dass einzelne Benutzer oder Dienste sie mit zu vielen Anforderungen überfluten.
- Sicherstellen einer fairen Nutzung. Die Ratenbegrenzung erzwingt Richtlinien für die faire Nutzung, indem sichergestellt wird, dass kein einzelner Benutzer die API-Ressourcen monopolisiert. Die Ratenbegrenzung ermöglicht einen gleichberechtigten Zugang für alle Benutzer.
- Erhöhen Sie die Sicherheit. Die Ratenbegrenzung hilft bei der Eindämmung von Distributed-Denial-of-Service-Angriffen und anderen missbräuchlichen Verhaltensweisen, indem sie die Anzahl der Anfragen von potenziell bösartigen Quellen einschränkt.
- Kostenmanagement. Bei Clouddienstanbietern hilft die Zinsbegrenzung bei der Verwaltung der Betriebskosten, indem unvorhersehbare oder übermäßige Nutzung von Ressourcen verhindert wird.
- Aufrechterhaltung der Servicequalität. Die Ratenbegrenzung gewährleistet eine gleichbleibende Servicequalität für alle Benutzer, indem sie Traffic-Spitzen verhindert.
Wie Sie die Ratebegrenzung in Ihren Apps erleben
Wenn Sie Apps erstellen, die Cloud-APIs integrieren, überprüfen Sie ihre Dokumentation, um zu überprüfen, ob sie die Ratenbeschränkung unterstützen. Wenn dies der Vorgang ist, erhalten einen der Antwortheader RateLimit-... oder X-RateLimit-... mit Informationen zu den Ratenlimits. Sie können diese Informationen in Ihrer Anwendung verwenden, um sicherzustellen, dass Sie die Ratengrenzwerte der API nicht überschreiten. Beispielsweise gibt der Header RateLimit-Remaining die Anzahl der im aktuellen Fenster verbleibenden Anforderungen an. Wenn Sie eine Antwort erhalten, bei der dieser Header auf 0 gesetzt ist, wissen Sie, dass Sie das Ratenlimit erreicht haben, und sollten auf das nächste Fenster warten, bevor Sie eine weitere Anforderung senden. Der RateLimit-Reset Header gibt den Zeitpunkt an, zu dem die Ratenbegrenzung zurückgesetzt wird. Einige APIs senden die RateLimit-... Header erst, nachdem Sie einen Schwellenwert erreicht haben. Ein Beispiel dafür ist, wenn noch 10 % der Anfragen verbleiben.
Wenn Sie das Ratenlimit überschreiten, drosselt die API Ihre Anforderungen und gibt einen HTTP-Statuscode 429 Too Many Requests zurück. Einige APIs senden möglicherweise auch einen Retry-After Header, um anzugeben, wie lange Sie warten sollten, bevor Sie eine weitere Anforderung senden. Nicht jede API folgt diesem Muster. GitHub kann z. B. mit 403 anstelle von 429 antworten.
Um eine Drosselung zu vermeiden und sicherzustellen, dass Ihre Anwendung reaktionsfähig bleibt, implementieren Sie eine Ratenbegrenzung in Ihrer Anwendung. Abhängig von Ihrem Technologie-Stack können verschiedene Bibliotheken Ihnen helfen, die Ratenbegrenzung in Ihrer Anwendung zu handhaben. Nachdem Sie die Ratenbegrenzung in Ihrer Anwendung implementiert haben, testen Sie, ob die Ratenbegrenzung ordnungsgemäß verarbeitet wird.
Wie wirkt sich die Zinsbegrenzung auf Ihre App aus?
Wenn eine API mit der Rückgabe von 429 Antworten beginnt, stürzt eine App, die sie nicht behandelt, ab, zeigt einen generischen Fehler an, versucht es so schnell erneut, dass sie gedrosselt bleibt, oder verwirft stillschweigend Daten. Während der Entwicklung sehen Sie selten etwas davon, da die API schnell ist, Sie der einzige Benutzer sind und Ihre Testdaten klein sind.
So testen Sie, ob Ihre App mit Ratenbegrenzungen umgehen kann
| Approach | Was Sie finden | Was Sie verpassen |
|---|---|---|
| Auf den Produktivbetrieb warten | Tatsächliche Ratenbegrenzungen | Alles, bis ein Benutzer darauf klickt |
| Mocke die API in deinen Tests, oder lass deinen Coding-Agenten den Mock schreiben | Ob die Wiederholungsverzweigung ausgeführt wird | Die tatsächlichen Statuscodes der API, die Kopfzeilen für die Ratenbegrenzung und Fehlertexte sowie die Wiederholungsrichtlinie Ihres SDKs. Ihre App benötigt außerdem einen reinen Testschalter, um den Mock zu erreichen. |
| Rufen Sie die echte API auf, bis sie Sie drosselt | Tatsächliches Verhalten | Sie können das Limit nicht beliebig erreichen, Sie brauchen Ihr tatsächliches Kontingent auf, und einige Grenzwerte werden erst nach einer Stunde zurückgesetzt. |
| Fangen Sie den realen Datenverkehr Ihrer App ab und simulieren Sie das Limit | Echte URLs, Ihre reale SDK- und Wiederholungsrichtlinie und die eigenen Header der API mit einem von Ihnen ausgewählten Grenzwert | Ihr Code in Isolation. Heben Sie sich das für Unit-Tests auf. |
Probieren Sie sie mit Ihrer App aus
Dev Proxy zählt die Anfragen Ihrer App an die von Ihnen ausgewählten APIs, fügt kopfzeilen für Die Antworten hinzu und gibt 429 zurück, wenn Ihre App den Grenzwert überschreitet, während Ihre App die echten URLs weiter aufruft. Außerdem erfahren Sie, wann Ihre App die API erneut aufruft, bevor der Grenzwert zurückgesetzt wird.
Laden Sie die Voreinstellung für die API herunter, die Ihre App aufruft, und starten Sie Dev Proxy damit:
devproxy config get github-rate-limiting
devproxy --config-file "~dataFolder/configs/github-rate-limiting/.devproxy/devproxyrc.json"
Verwenden Sie für Microsoft Graph Aufrufe von OneDrive und SharePoint (/drive, /shares, /sites) die microsoft-graph-rate-limiting Voreinstellung. Informationen zum Festlegen Ihrer eigenen Ratenbegrenzung für eine beliebige API finden Sie unter API-Antworten zur Simulation von Ratenbegrenzungen. Informationen zum Installieren von Dev Proxy finden Sie unter Einrichten von Dev Proxy.