Was versteht man unter Ratenbegrenzung?
Die Ratenbegrenzung ist eine Technik zur Steuerung der Anzahl der Anfragen, die ein Client innerhalb eines bestimmten Zeitfensters an ein System stellen kann, um dieses System vor einer Überlastung zu schützen. Es handelt sich um eine Schutzmaßnahme, die die meisten Endnutzer erst bemerken, wenn sie darauf stoßen.
Ratenbeschränkungen können auf vielen Ebenen angewendet werden: pro API-Schlüssel, pro Benutzerkonto, pro IP-Adresse oder global für einen gesamten Dienst – je nachdem, was das System schützen soll und vor wem.
Wie funktioniert die Ratenbegrenzung?
Ein Ratenbegrenzer überwacht die Anzahl der Anfragen pro Client (nach API-Schlüssel, IP-Adresse, Benutzer oder Token) im Vergleich zu einem festgelegten Schwellenwert, beispielsweise 100 Anfragen pro Minute. Sobald ein Client diesen Schwellenwert überschreitet, werden nachfolgende Anfragen verzögert, in eine Warteschlange gestellt oder abgelehnt – in der Regel mit einer HTTP-429-Antwort („Too Many Requests“) –, bis das Zeitfenster zurückgesetzt wird.
Zu den gängigen Algorithmen zählen das Festfenster-Verfahren (ein Hard-Reset alle N Sekunden), das Gleitfenster-Verfahren (eine fortlaufende Zählung, die Spitzenwerte an den Fensterrändern vermeidet), das Token-Bucket-Verfahren (Anfragen verbrauchen Token, die mit konstanter Rate wieder aufgefüllt werden) und das Leaky-Bucket-Verfahren (Anfragen werden unabhängig von der Burst-Größe mit konstanter Ausgaberate verarbeitet). Bei jedem dieser Verfahren gibt es unterschiedliche Kompromisse hinsichtlich Burst-Toleranz, Fairness und Implementierungskomplexität.
Was passiert, wenn ein Ratenlimit überschritten wird?
Je nach Systemaufbau wird eine Anfrage, die das Limit überschreitet, in der Regel entweder direkt mit dem Statuscode 429 abgelehnt, in eine Warteschlange gestellt und bearbeitet, sobald Kapazitäten frei werden, oder auf eine langsamere Antwortgeschwindigkeit gedrosselt. Gut konzipierte APIs geben in ihren Headern das Limit, die Anzahl der verbleibenden Anfragen und den Zeitpunkt der Zurücksetzung des Zeitfensters an, sodass Clients sich intelligent zurückziehen können.
Clientseitige Wiederholungsversuche, die sofort ausgelöst werden und wiederholt zusätzliche Last verursachen, gerade dann, wenn das System versucht, diese abzubauen. Aus diesem Grund implementieren die meisten API-Clients einen exponentiellen Backoff, wenn sie einen 429-Fehler erhalten.
Warum ist die Ratenbegrenzung wichtig?
Ein einziger fehlerhaft funktionierender Client, ein plötzlicher Anstieg des Datenverkehrs oder ein außer Kontrolle geratener automatisierter Prozess kann die Leistung für alle anderen Nutzer beeinträchtigen oder gemeinsam genutzte Backend-Ressourcen erschöpfen, wenn die Anfragen nicht überwacht werden. Die Ratenbegrenzung ist eine zentrale Maßnahme zur Gewährleistung der API-Stabilität, einer fairen Nutzung und der Kostenkontrolle.
Dies gewinnt zunehmend an Bedeutung, da KI-Agenten und automatisierte Systeme ein Anfragevolumen erzeugen, das kein Mensch manuell erzeugen könnte. Ein Agent, der in einer Wiederholungsschleife feststeckt, oder einer, der darauf ausgelegt ist, aggressiv Abfragen zu senden, kann Anfragemuster erzeugen, die in keiner Weise dem menschlichen Datenverkehr ähneln – und genau dieses Szenario soll durch die Ratenbegrenzung eingedämmt werden.



