Todos os produtos
Search
Central de documentação

API Gateway:Configure TCP connection timeout

Última atualização: Jun 27, 2026

Visão geral

Quando um cliente chama o API Gateway, o gateway encaminha a solicitação ao serviço de backend por meio de uma conexão TCP. Configurações incorretas de timeout nessas conexões podem causar falhas nas solicitações ou até interrupções em todo o sistema. Este guia explica como configurar timeouts TCP para garantir comunicação confiável e evitar problemas potenciais.

Para conexões TCP sobre HTTP, as seguintes configurações de timeout são comuns:

  • ConnectionTimeout

  • WriteTimeout

  • ReadTimeout

Configure ConnectionTimeout e WriteTimeout com base nas condições da rede. A comunicação via rede pública geralmente exige timeout maior. Por exemplo, defina tanto ConnectionTimeout quanto WriteTimeout como 10 segundos. Para comunicação em rede interna, utilize timeout menor.

No entanto, defina ReadTimeout conforme o tempo de processamento do serviço de backend. Em cenários de gateway que envolvem múltiplos timeouts de leitura, siga regras específicas.

Princípios para configuração de timeouts de conexão TCP

O diagrama a seguir ilustra um caminho simples de solicitação em que um cliente chama o API Gateway. O cliente envia uma solicitação ao API Gateway, que a encaminha ao serviço de backend. Após o serviço de backend processar a solicitação e retornar uma resposta, o API Gateway retransmite essa resposta ao cliente.

image.png

Duas configurações de timeout são críticas nesse processo:

  1. Timeout para o cliente receber uma resposta do API Gateway (ClientReadTimeout), configurado no lado do cliente.

  2. Timeout para o API Gateway receber uma resposta do serviço de backend (APIGatewayBackendTimeout), configurado no console do API Gateway.

Conforme ilustrado no diagrama:

ClientReadTimeout = T2 + T3 + T4 + T5

APIGatewayBackendTimeout = T2 + T3 + T4

Portanto, ao configurar ClientReadTimeout e APIGatewayBackendTimeout, siga duas regras:

  • APIGatewayBackendTimeout deve ser maior que o tempo de processamento do serviço de backend.

  • ClientReadTimeout deve ser maior que APIGatewayBackendTimeout.

Por exemplo, se o serviço de backend normalmente processa uma solicitação em menos de 10 segundos, defina APIGatewayBackendTimeout como 10 segundos e ClientReadTimeout como 15 segundos. Isso garante que a conexão TCP permaneça aberta tempo suficiente para o backend responder.

Aviso

Se essas regras não forem seguidas, um serviço de backend com execução prolongada pode fazer com que o cliente feche a conexão prematuramente, antes que o API Gateway consiga enviar uma resposta. Isso resulta em erro N502RE, pois o API Gateway não encontra conexão TCP disponível. Sob tráfego intenso, isso pode levar a falha em cascata. Preste muita atenção a essas configurações.

Configuração

Importante

O valor mínimo para a configuração APIGatewayBackendTimeout no API Gateway é 300 ms. Se você definir valor inferior a 300 ms, o padrão será 300 ms.

Configure ClientReadTimeout no código de inicialização do pool de conexões HttpClient do cliente. O exemplo a seguir mostra como configurar esse parâmetro usando um SDK do API Gateway:

public class CommonTest  extends ApacheHttpClient {
    public final static String HOST = "www.aliyun.com";
    static CommonTest instance = new CommonTest();
    public static CommonTest getInstance(){return instance;}
    public void init(HttpClientBuilderParams httpClientBuilderParams){
        httpClientBuilderParams.setScheme(Scheme.HTTP);
        httpClientBuilderParams.setHost(HOST);
        httpClientBuilderParams.setAppKey("test");
        httpClientBuilderParams.setAppSecret("test");
        httpClientBuilderParams.setReadTimeout(15000);
        super.init(httpClientBuilderParams);
    }
}

Defina APIGatewayBackendTimeout no console do API Gateway ao definir o serviço de backend da API.

Na etapa Define API backend service, nas definições básicas de backend, defina o campo backend timeout com o valor desejado. O padrão é 10.000 ms.

Prioridade do APIGatewayBackendTimeout

É possível configurar o parâmetro APIGatewayBackendTimeout em vários locais no console do API Gateway:

  • Serviços de backend

  • Backend da API

  • Plugins de rota

Caso a configuração de APIGatewayBackendTimeout exista em múltiplos locais, aplica-se a seguinte ordem de prioridade: Plugins de rota > Backend da API > Serviços de backend