Qu'est-ce que la limitation de débit ?

Résumez cela avec l'IA

Qu'est-ce que la limitation de débit ?

La limitation de débit est une technique permettant de contrôler le nombre de requêtes qu'un client peut adresser à un système au cours d'un intervalle de temps donné, afin d'éviter que ce dernier ne soit saturé. Il s'agit d'un mécanisme de protection dont la plupart des utilisateurs finaux ne se rendent compte que lorsqu'ils y sont confrontés.

Les limites de débit peuvent être appliquées à différents niveaux : par clé API, par compte utilisateur, par adresse IP ou de manière globale à l'échelle d'un service entier, en fonction de ce que le système cherche à protéger et contre qui.

Comment fonctionne la limitation de débit ?

Un limiteur de débit surveille le nombre de requêtes par client (par clé API, adresse IP, utilisateur ou jeton) par rapport à un seuil défini, par exemple 100 requêtes par minute. Dès qu’un client dépasse ce seuil, les requêtes suivantes sont retardées, mises en file d’attente ou rejetées, généralement avec une réponse HTTP 429 « Too Many Requests » (Trop de requêtes), jusqu’à ce que la fenêtre de temps soit réinitialisée.

Parmi les algorithmes courants, on peut citer la fenêtre fixe (réinitialisation forcée toutes les N secondes), la fenêtre glissante (un compteur glissant qui évite les pics aux extrémités de la fenêtre), le « token bucket » (les requêtes consomment des jetons qui se reconstituent à un rythme constant) et le « leaky bucket » (les requêtes sont traitées à un débit de sortie constant, quelle que soit la taille des rafales). Chacun de ces algorithmes présente un compromis différent entre tolérance aux rafales, équité et complexité de mise en œuvre.

Que se passe-t-il lorsqu'une limite de fréquence est dépassée ?

Selon la conception du système, une requête dépassant la limite est généralement soit rejetée d'emblée avec un code d'état 429, soit mise en file d'attente et traitée dès qu'une capacité se libère, soit soumise à une limitation de débit entraînant un temps de réponse plus long. Les API bien conçues renvoient des en-têtes indiquant la limite, le nombre de requêtes restantes et le moment où la fenêtre se réinitialise, afin que les clients puissent moduler leur débit de manière intelligente.

Les tentatives de reconnexion côté client, qui se déclenchent immédiatement et de manière répétée, alourdissent encore davantage la charge au moment même où le système tente de la réduire. C'est pourquoi la plupart des clients API mettent en œuvre un recul exponentiel lorsqu'ils reçoivent un code d'erreur 429.

Pourquoi la limitation du débit est-elle importante ?

Un seul client défaillant, un pic de trafic ou un processus automatisé hors de contrôle peut nuire aux performances de tous les autres utilisateurs ou épuiser les ressources backend partagées si les requêtes ne sont pas contrôlées. La limitation de débit constitue un moyen de défense essentiel pour garantir la stabilité des API, une utilisation équitable et la maîtrise des coûts.

Cela revêt une importance croissante, car les agents d'IA et les systèmes automatisés génèrent des volumes de requêtes qu'aucun être humain ne pourrait produire manuellement. Un agent bloqué dans une boucle de réessais, ou conçu pour effectuer des requêtes de manière intensive, peut produire des schémas de requêtes qui ne ressemblent en rien au trafic humain, ce qui correspond exactement au scénario que la limitation de débit vise à contenir.