Technische Entscheidungen · Senior · Frage 13 von 14
Eine öffentliche API läuft auf 40 Instanzen, und jeder Schlüssel darf 100 Anfragen pro Minute stellen. Kleine Spitzen sind in Ordnung, aber die Grenze muss über Instanzen hinweg gelten. Wo liegen die Zähler?
- 1Im Speicher jeder der 40 Instanzen
- 2In einer PostgreSQL-Zeile, bei jeder Anfrage aktualisiert
- 3In einem geteilten Redis, mit einem Token Bucket
Antwort zeigen
Richtige Antwort: In einem geteilten Redis, mit einem Token Bucket
Erklärung
Ein geteilter In-Memory-Speicher sieht alle Instanzen und bewältigt diese Update-Rate billig, und ein Token Bucket erlaubt kurze Spitzen. Zähler pro Instanz passen zu grobem Schutz gegen Fluten, aber ein Schlüssel könnte das 40-Fache seiner Grenze erreichen. Eine Datenbankzeile passt zu Kontingenten mit wenig Volumen wie monatlicher Abrechnung, während ihr Update bei jeder Anfrage eine Zeile zum heißen Engpass macht.