CamaraDosDeputados / dados-abertos

Repositório do serviço de Dados Abertos da Câmara. Consulte as "Issues" para atendimento a dúvidas e sugestões.
http://dadosabertos.camara.leg.br
196 stars 13 forks source link

Limitação do número de acessos #251

Open EquipeDadosAbertosCD opened 5 years ago

EquipeDadosAbertosCD commented 5 years ago

Salve, pessoal!

Nesta terça-feira 07/05 foi estabelecido, para todos os endpoints da nova API, o limite de 10 (dez) requisições por segundo para cada IP. A aplicação que fizer requisições sem o intervalo mínimo necessário terá respostas com status 429 (Too Many Requests).

Desde a noite de segunda-feira a API passou a ter momentos de alta instabilidade, com queda do banco de dados e respostas com status 500. Descobrimos pelos logs que pelo menos três aplicações estavam fazendo muitas requisições simultâneas e em rápida sucessão.

Mais uma vez reforçamos a recomendação de que, para fazer carga em banco de dados local -- isto é, para tarefas como "baixar todas as proposições" --, sejam usados inicialmente, se possível, os arquivos do Dados Abertos, e a API seja usada somente para atualizações incrementais dessas bases.

Obrigado e abraços!

Fabricio Rocha Equipe Dados Abertos - Câmara

EquipeDadosAbertosCD commented 5 years ago

Olá, pessoal!

No fim da tarde de 15/05/2019, o limite de requisições por segundo para cada IP foi elevado para 30.

Ainda assim, verificamos em nossos logs que há usuários recebendo erros 429 em consequência de múltiplas requisições simultâneas e sem intervalo. O trecho abaixo mostra dois pacotes de requisições feitas por um mesmo IP -- um à API nova, outro à API antiga -- em um intervalo de 1ms.

Screenshot from 2019-05-17 10-32-43

Foi solicitado à área de infraestrutura que as respostas com status 429 dadas pelo servidor web contenham um cabeçalho Retry-After, e recomendamos aos desenvolvedores que incluam o suporte a ele no tratamento de respostas em suas aplicações.

Obrigado e abraços!

Fabricio Rocha Equipe Dados Abertos - Câmara