Quando um gateway nativo da nuvem encaminha requisições para serviços de backend, backends lentos ou sem resposta podem manter conexões abertas indefinidamente. Isso esgota os recursos do gateway e degrada a experiência de outros clientes. Uma política de timeout define o tempo máximo que o gateway aguarda uma resposta do backend em uma rota específica. Se o backend não responder dentro desse período, o gateway retornará HTTP 504 (Gateway Timeout) ao cliente.
As políticas de timeout são configuradas por rota. Defina timeouts mais curtos para APIs sensíveis à latência e timeouts mais longos para endpoints de processamento em lote ou computação pesada.
Como funciona
Ao ativar uma política de timeout em uma rota, o gateway inicia um temporizador após encaminhar a requisição ao serviço de backend.
Se o backend não retornar uma resposta dentro do período de timeout configurado, o gateway retornará HTTP 504 (Gateway Timeout) ao cliente.
A tabela a seguir resume o comportamento para diferentes valores de timeout:
|
Valor de timeout |
Comportamento do gateway |
|
Maior que |
Aguarda até o número especificado de segundos por uma resposta do backend. Retorna |
|
|
Aguarda indefinidamente. Utilize apenas para APIs de streaming ou operações de longa duração. |
Definir o período de timeout como 0 produz o mesmo efeito que desativar a política. Para a maioria das APIs de requisição-resposta, defina um timeout explícito para evitar o esgotamento de recursos.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância de gateway nativo da nuvem no Microservices Engine (MSE)
Pelo menos uma rota configurada no gateway
Configure uma política de timeout
Faça login no console do MSE. Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique em ID do gateway.
No painel de navegação à esquerda, clique em Routes. Em seguida, clique em aba Routes.
Localize a rota a ser modificada e clique em Policies na coluna Actions.
Clique em aba Timeout.
-
Configure os parâmetros a seguir e clique em Save.
Parâmetro
Descrição
Timeout Period
Tempo máximo, em segundos, que o gateway aguarda uma resposta do backend. O valor
0indica que o gateway aguardará indefinidamente.Enable
Ative ou desative a política. Com a chave ligada, a política de timeout entra em vigor. Com a chave desligada, o gateway aguarda indefinidamente, como se nenhum timeout estivesse definido.
Verifique a política de timeout
Após ativar a política de timeout, envie uma requisição de teste para a rota e confirme se:
Requisições concluídas dentro do período de timeout retornam a resposta esperada.
Requisições que excedem o período de timeout retornam HTTP
504 (Gateway Timeout).
Orientações para produção
Ao implantar políticas de timeout em ambiente de produção, considere os pontos abaixo:
Meça os tempos de resposta reais primeiro. Antes de definir um timeout, colete métricas de latência de base (p50, p95, p99) do serviço de backend. Configure o timeout acima da latência p99 para evitar erros
504desnecessários sob carga normal.Evite desativar timeouts em rotas de requisição-resposta. Definir o timeout como
0ou desativar a política faz com que o gateway aguarde indefinidamente. Reserve essa configuração para rotas que servem respostas em streaming ou operações de longa duração (como upload de arquivos ou geração de relatórios).