Dynamic Media OpenAPI e Asset Gateway: como entender e resolver limites de taxa de API
A atividade de API de alto volume pode retornar erros HTTP 429 quando os padrões de solicitação excedem os limites de taxa dinâmicos. O problema é normalmente causado por disparo de tráfego, sondagem repetida ou fluxos de trabalho de várias etapas, em que cada chamada é contada separadamente, enquanto o armazenamento em cache pode atrasar quando as atualizações se tornam visíveis. A resolução se concentra em confirmar a limitação nos logs, reduzir solicitações desnecessárias, respeitar o comportamento do cache e aplicar retrocesso exponencial. Respostas estáveis retornam após os padrões de solicitação e o comportamento de repetição serem ajustados.
Descrição description
Ambiente:
- Fluxos de trabalho de assimilação de ativos baseados em API
- Workflows de recuperação de metadados
- Entrega de ativos ou integrações de gateway
- Clientes que fazem solicitações de API repetidas ou de alto volume
Problema/Sintomas
- Os endpoints da API retornam respostas HTTP 429 Demasiadas Solicitações intermitentes, que podem ser confirmadas em logs de aplicativos ou dados de monitoramento e vinculadas aos endpoints afetados.
- O problema é mais perceptível durante o tráfego de intermitência ou outros períodos de solicitação de alto volume, indicando limitação sob carga de solicitação mais pesada.
- Os workflows de várias etapas podem ser afetados desproporcionalmente, pois uma única operação pode gerar várias solicitações de API contadas, como pesquisa, pesquisa de metadados, iniciação de upload e envio de upload.
- A repetição da atividade do cliente, incluindo sondagem, tentativas ou falha na reutilização de respostas em cache, pode aumentar o volume de solicitações e contribuir para a limitação.
- As atualizações de ativos ou conteúdo podem parecer atrasadas porque as respostas em cache podem persistir por até 10 minutos; esse comportamento pode ser validado por meio de cabeçalhos de resposta, como
Cache-Control: max-age=600. - Nesses casos, o conteúdo atualizado pode se tornar visível somente após 1 a 10 minutos, o que aponta para o atraso da camada de cache, em vez de uma falha de API separada.
Causa raiz:
A API usa uma limitação de taxa dinâmica e baseada em carga em vez de um limite fixo de solicitações por segundo. Picos de tráfego, sondagem não otimizada e upload de várias etapas ou fluxos de consulta podem levar o volume de solicitações além de limites íntegros e acionar a limitação. Além disso, as respostas podem ser armazenadas em cache com Cache-Control: max-age=600, de modo que os caches downstream podem continuar a fornecer dados mais antigos após a atualização da origem.
Resolução resolution
Use as etapas abaixo para reduzir a limitação e confirmar a recuperação.
- Revise os logs de aplicativo ou o monitoramento de API para identificar Muitas solicitações HTTP 429 respostas. O resultado esperado é uma evidência clara de limitação vinculada aos endpoints de API afetados. Verifique se as respostas podem ser repetidas no mesmo fluxo de trabalho e se não estão isoladas a solicitações não relacionadas.
- Inspecione os fluxos de trabalho de upload ou consulta em busca de padrões de solicitação de várias etapas. O resultado esperado é a identificação dos fluxos em que cada chamada contribui separadamente para o volume global de solicitações. Verifique se as sequências de solicitação, como pesquisa, pesquisa de metadados, iniciação de upload e envio de upload estão sendo contadas.
- Revisar comportamento de repetição e cache de resposta, incluindo
Cache-Control: max-age=600. O resultado esperado é encontrar chamadas repetidas que podem ser removidas, atrasadas ou armazenadas em cache. Verifique se o cliente respeita a duração do cache e não solicita novamente os mesmos dados imediatamente. - Reduza o volume de solicitações armazenando as respostas em cache, sempre que possível, e evitando buscas repetidas de metadados ou chamadas duplicadas. O resultado esperado é uma taxa de transferência de API mais baixa e menos solicitações limitadas. Verifique a alteração revisando os logs ou o monitoramento para confirmar se o volume de solicitações diminui e se 429 respostas ocorrem com menos frequência.
- Valide o comportamento do cache ao verificar atualizações. O resultado esperado é reconhecer que o conteúdo atualizado pode aparecer após a propagação normal do cache, em vez de imediatamente. Verifique isso limpando o cache do navegador, repetindo a solicitação e confirmando se o conteúdo atualizado aparece dentro da janela de cache de 1 a 10 minutos esperada.
- Aplique o retrocesso exponencial para que o cliente aguarde progressivamente mais tempo antes de tentar novamente após uma resposta 429. O resultado esperado é uma frequência menor de eventos de limitação. Verifique o aprimoramento monitorando logs após a implantação das alterações de nova tentativa e confirmando o declínio de repetidas 429 respostas.
- Se o tráfego se aproximar consistentemente dos limites do serviço, analise se o agrupamento de solicitações ou as alterações de design do fluxo de trabalho podem reduzir as chamadas por item. O resultado esperado é um comportamento de resposta mais estável no tráfego normal. Verifique se os padrões de solicitação permanecem constantes durante o uso típico e não acionam mais a limitação repetida.
- Se a limitação continuar após a otimização da solicitação, colete carimbos de data e hora, endpoints afetados, cabeçalhos de solicitação e resposta, taxa de solicitação estimada e detalhes da estratégia de cache antes de entrar em contato com o suporte. O resultado esperado é um registro técnico completo que apoie uma investigação mais rápida. Verifique se as informações coletadas refletem as solicitações limitadas e as condições em que elas ocorrem.
Se HTTP 429 Demasiadas Solicitações respostas continuarem depois que o volume de solicitação for reduzido, o cache estiver funcionando como esperado, o comportamento de repetição for atualizado e a limitação ainda puder ser repetida para os mesmos fluxos de trabalho de API, envie um tíquete para o Suporte da Adobe e inclua os carimbos de data e hora, pontos de extremidade afetados, cabeçalhos de solicitação e resposta, taxa de solicitação estimada e detalhes da estratégia de cache coletados durante a solução de problemas.