Projektbeschreibung
ÜbersetztFür Algorithmen möchten wir sowohl eine Token-Bucket-Variante zur Glättung kurzer Spitzen als auch einen gleitenden Fensterzähler für präzise Abrechnung innerhalb des Fensters, wählbar auf der Richtlinienebene. Zähler sollten in Redis gespeichert werden, damit mehrere API-Knoten dasselbe Verbrauchsbild ohne Abweichungen sehen, und die Überprüfung selbst fügt nur eine oder zwei Millisekunden Latenz hinzu. Über einfache Grenzen hinaus benötigen wir vollwertige Quotenstufen mit monatlichen oder täglichen Limits, eine Verfolgung des Verbrauchs pro Schlüssel und eine Möglichkeit, die verbleibende Quote an den Anrufer zurückzugeben. Wenn ein Limit überschritten wird, muss der Dienst mit dem Status 429 antworten, Standardgrenzen-Header einschließlich Limit, verbleibend und zurücksetzen zurückgeben und einen Retry-After-Hinweis hinzufügen, damit sich gut benommene Clients selbst drosseln.
Die Lieferung umfasst ein kleines Admin-Panel oder ein Konfigurationsformat zur Beschreibung von Tarifplänen und Schlüsselbindungen, einen Metrik-Speicher für Abrechnung und Analysen sowie eine klare Dokumentation. Bitte erklären Sie, wie Sie atomare Operationen in Redis planen, wie Sie Rennbedingungen bei hoher Parallelität vermeiden und wie Sie den Drosselungstest durchführen, bevor Sie live gehen.
— Pro-Schlüssel-Richtlinien mit Token-Bucket- und gleitenden Fensteralgorithmen
— Quotenstufen mit täglichen und monatlichen Limits
— Gemeinsame Zähler in Redis mit minimaler zusätzlicher Latenz
— Verbrauchsverfolgung und Berichte für die Abrechnung
— Korrekte 429-Antworten mit Limit, verbleibend, zurücksetzen und Retry-After-Headern
— Admin-Konfiguration für Tarifpläne und Schlüsselbindungen, Dokumentation und Lasttests