EMZETT.
Login

Token-Bucket (Rate Limiting)

Kurz: Beim Token-Bucket-Verfahren füllt sich ein Eimer in festem Takt mit Marken. Jede Anfrage verbraucht eine Marke, ist der Eimer leer, wird sie abgelehnt oder verzögert.

Genauer: Der Eimer hat eine Höchstgröße (Burst) und eine Nachfüllrate. So sind kurze Spitzen erlaubt, solange vorher genug Marken angespart wurden, auf Dauer aber nur die Nachfüllrate.

Im Detail

  • Parameter: Kapazität (zum Beispiel 20) und Rate (zum Beispiel 5 pro Sekunde).
  • Vergleich: Fixed-Window-Zähler sind einfach, erlauben aber Doppel-Spitzen an der Fenstergrenze. Sliding-Window ist genauer, Token Bucket glättet Last elegant.
  • Antwort: HTTP-Status 429 „Too Many Requests”, oft mit Retry-After-Header.
  • Verteilt: Der Zähler liegt in einem gemeinsamen Speicher (zum Beispiel Redis), damit alle Server dasselbe Limit sehen.
  • Schlüssel: Pro IP, Nutzer oder API-Schlüssel getrennt zählen.

Siehe auch: Rate Limiting