Práticas recomendadas para configurar o tempo limite de E/S

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

As solicitações de API feitas pelos aplicativos cliente fluem por vários componentes no Apigee Edge antes de chegarem aos serviços de back-end. A maioria dos aplicativos clientes espera que as respostas a essas solicitações sejam recebidas em tempo hábil.

Para receber respostas em tempo hábil, os valores de tempo limite de E/S são definidos em cada um dos componentes por onde as solicitações da API passam. Se algum dos componentes no fluxo levar mais tempo do que o componente anterior, o componente anterior vai expirar e responder com erros de tempo limite de gateway 504.

Ao configurar o tempo limite, os valores precisam ser definidos em cada um dos componentes com muito cuidado, caso contrário, isso pode levar a erros de tempo limite 504 do gateway.

Este documento descreve as práticas recomendadas para configurar o tempo limite de E/S em vários componentes por onde as solicitações de API fluem no Apigee Edge.

Práticas recomendadas para configurar o tempo limite de E/S

Considere as práticas recomendadas a seguir ao configurar o tempo limite de E/S:

  • Primeiro componente:sempre use o tempo limite mais alto no primeiro componente do fluxo de solicitação da API, que é o aplicativo cliente no Apigee Edge.
  • Último componente:sempre use o tempo limite mais baixo no último componente do fluxo de solicitação da API, que é o serviço de back-end no Apigee Edge.
  • Entre componentes:verifique se há uma diferença de pelo menos dois a três segundos no valor de tempo limite configurado em cada componente entre o primeiro e o último componente no fluxo.
  • Roteador:é sempre uma boa prática configurar (modificar) o valor de tempo limite de E/S para um host virtual específico, em vez de configurá-lo no roteador. Isso garante que o novo valor de tempo limite afete apenas os proxies de API que estão usando o host virtual específico e não todos os proxies de API veiculados pelo roteador.

    Configure (modifique) o tempo limite de E/S no roteador somente quando tiver certeza de que o novo valor do tempo limite de E/S é necessário ou aplicável a todos os proxies de API em execução no roteador.

  • Processador de mensagens:é sempre uma boa prática configurar (modificar) o valor do tempo limite de E/S para um proxy de API específico, em vez de configurá-lo no processador de mensagens. Isso garante que o novo valor de tempo limite afete apenas o proxy de API específico e não todos os proxies de API veiculados pelo processador de mensagens.

    Configure (modifique) o tempo limite de E/S no processador de mensagens somente quando tiver certeza de que o novo valor do tempo limite de E/S é necessário ou aplicável a todos os proxies de API em execução no processador de mensagens.

Exemplos de cenários

Os cenários desta seção podem ajudar você a entender como definir corretamente os valores de tempo limite de E/S.

Cenário 1: solicitações ao Apigee Edge diretamente de aplicativos clientes

Esta seção descreve as práticas recomendadas a serem seguidas ao configurar os valores de tempo limite em uma configuração do Apigee Edge em que não há componentes intermediários entre o aplicativo cliente e o Apigee Edge e entre o Apigee Edge e o servidor de back-end.

Exemplo de configuração da Apigee sem componentes intermediários

Fluxo que começa no cliente, passa pelo roteador, pelo processador de mensagens e pelo servidor de back-end

Se o Apigee Edge estiver configurado conforme mostrado no diagrama acima, sem componentes intermediários, use as práticas recomendadas a seguir:

  1. O aplicativo cliente é o primeiro componente do fluxo. O valor do tempo limite mais alto precisa ser definido no cliente.
  2. O servidor de back-end é o último componente no fluxo. O valor do tempo limite mais baixo precisa ser definido no servidor de back-end.
  3. Configure os valores de tempo limite em cada um dos componentes na seguinte ordem:

    Configurar o tempo limite no cliente, no roteador, no processador de mensagens e no servidor de back-end

    O exemplo a seguir mostra os valores de tempo limite definidos nos vários componentes de acordo com as diretrizes fornecidas acima para evitar problemas:

    Configure o tempo limite no cliente em 60 segundos, depois no roteador em 57 segundos, depois no processador de mensagens em 55 segundos e, por fim, no servidor de back-end em 52 segundos.

Cenário 2: solicitações ao Apigee Edge de aplicativos clientes por componentes intermediários

Esta seção descreve as práticas recomendadas a serem seguidas ao configurar os valores de tempo limite em uma configuração do Apigee Edge em que há um ou mais componentes intermediários entre o aplicativo cliente e o Apigee Edge, além de entre o Apigee Edge e o servidor de back-end.

Os componentes intermediários podem ser um balanceador de carga, uma rede de fornecimento de conteúdo (CDN), NGINX e assim por diante.

Exemplo de configuração da Apigee com um componente intermediário entre o cliente e a Apigee Edge e entre a Apigee Edge e o servidor de back-end

Fluxo que começa no cliente e vai para o componente intermediário 1, depois para o roteador, para o processador de mensagens, para o componente intermediário 2 e para o servidor de back-end

Se o Apigee Edge estiver configurado conforme mostrado no diagrama acima, com um ou mais componentes intermediários, use as seguintes práticas recomendadas:

  1. O aplicativo cliente é o primeiro componente do fluxo. O valor de tempo limite mais alto precisa ser definido no cliente.
  2. O servidor de back-end é o último componente no fluxo. O valor de tempo limite mais baixo precisa ser definido no servidor de back-end.
  3. Configure os valores de tempo limite em cada um dos componentes, incluindo os intermediários, na seguinte ordem:

    Configure o tempo limite no cliente, depois no componente intermediário 1, no roteador, no processador de mensagens, no componente intermediário 2 e no servidor de back-end.

    O exemplo a seguir mostra os valores de tempo limite definidos nos vários componentes de acordo com as diretrizes fornecidas acima para evitar problemas:

    Configurar o tempo limite no cliente em 63 segundos, depois no componente intermediário 1 em 60 segundos, depois no roteador em 57 segundos, depois no processador de mensagens em 55 segundos, depois no componente intermediário 2 em 52 segundos e depois no servidor de back-end em 59 segundos