Arquitetura de software · Confiabilidade e segurança · 5 min de leitura
Rate limiting: limitar requisições
Limitar quantas requisições cada cliente pode fazer protege a API de abusos e de picos que derrubariam todo mundo.
Arraste para o lado para ver o diagrama inteiro.
Algoritmos
- Token bucket: permite rajadas curtas e controla a média.
- Janela fixa: simples, mas permite o dobro na virada da janela.
- Janela deslizante: mais justa, um pouco mais cara.
Na prática
- Limite por chave de API, usuário ou IP, guardando os contadores num armazenamento compartilhado (como Redis) quando há vários servidores.
- Responda
429comRetry-Afterpara o cliente esperar o tempo certo. - Limites diferentes por plano e por rota (login merece limite mais baixo).
Em resumo
- Protege contra abuso e picos.
- Token bucket permite rajadas controladas.
- Contadores compartilhados entre servidores.
- Responda 429 + Retry-After.