Description du projet
TraduitPour les algorithmes, nous voulons à la fois une variante de seau à jetons pour lisser les courts pics et un compteur de fenêtre glissante pour une comptabilité précise dans la fenêtre, sélectionnable au niveau de la politique. Les compteurs doivent être stockés dans Redis afin que plusieurs nœuds API voient la même image de consommation sans divergence, et la vérification elle-même n'ajoute qu'une milliseconde ou deux de latence. Au-delà des limites simples, nous avons besoin de niveaux de quotas complets avec des limites mensuelles ou quotidiennes, un suivi de la consommation par clé et un moyen de retourner le quota restant à l'appelant. Lorsqu'une limite est dépassée, le service doit répondre avec le statut 429, retourner des en-têtes de limite standard incluant limite, restant et réinitialisation, et ajouter un indice Retry-After afin que les clients bien comportés se limitent eux-mêmes.
La livraison comprend un petit panneau d'administration ou un format de configuration pour décrire les plans tarifaires et les liaisons de clés, un magasin de métriques pour la facturation et l'analyse, et une documentation claire. Veuillez expliquer comment vous planifiez des opérations atomiques dans Redis, comment vous évitez les conditions de concurrence sous une forte charge et comment vous allez tester la charge du limiteur avant de passer en production.
— Politiques par clé avec des algorithmes de seau à jetons et de fenêtre glissante
— Niveaux de quotas avec des limites quotidiennes et mensuelles
— Compteurs partagés sur Redis avec une latence minimale ajoutée
— Suivi de la consommation et rapports pour la facturation
— Réponses 429 correctes avec limite, restant, réinitialisation et en-têtes Retry-After
— Configuration d'administration pour les plans tarifaires et les liaisons de clés, documentation et tests de charge