Skip to content
Latchkey

O Que É Rate Limiting? Limitando o Volume de Requisições

Rate limiting é uma política que limita quantas requisições um cliente pode fazer dentro de uma janela de tempo, protegendo um serviço de sobrecarga e abuso ao rejeitar requisições em excesso.

APIs não conseguem servir requisições ilimitadas, então elas impõem rate limits que permitem um número definido de chamadas por janela e rejeitam o resto. Pipelines que chamam APIs em loops apertados, ou executam muitos jobs ao mesmo tempo contra a mesma API, rotineiramente esbarram nesses limites e precisam lidar com eles graciosamente.

Limites por janela

Um rate limit define um orçamento, como requisições por minuto ou por hora, escopado a um cliente, token ou IP. Uma vez gasto o orçamento, requisições adicionais são rejeitadas até a janela reiniciar.

A resposta 429

Quando você excede um limite, a API retorna 429 Too Many Requests, frequentemente com um header Retry-After indicando quanto tempo esperar. Honrar esse header é a forma correta de fazer backoff.

Como o CI aciona limites

  • Muitos jobs paralelos compartilham um único token de API.
  • Loops de polling apertados que chamam com frequência excessiva.
  • Um matrix build multiplicando a contagem de chamadas.

Lidando com limites graciosamente

Respeite o Retry-After, adicione backoff com jitter, coloque respostas em cache e reduza chamadas desnecessárias. Espalhar requisições ao longo do tempo mantém um pipeline abaixo do limite em vez de martelar e ser bloqueado.

Limites no gateway

O rate limiting frequentemente é imposto em um API gateway na frente do serviço, então um 429 pode vir do gateway antes de a requisição chegar ao backend.

Transitório e passível de retry

Um 429 é explicitamente passível de retry após a espera indicada, ao contrário de um 4xx que sinaliza uma requisição inválida. Os runners da Latchkey fazem backoff e retry de 429s transitórios de endpoints comuns, honrando o Retry-After, para que um throttling breve não faça um job falhar.

Principais conclusões

  • Rate limiting limita requisições por janela para proteger um serviço de sobrecarga.
  • Exceder o limite retorna 429, geralmente com um Retry-After a honrar.
  • Um 429 é passível de retry com backoff, ao contrário de um 4xx que significa requisição inválida.

Guias relacionados