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

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

As solicitações de API feitas pelos aplicativos clientes passam por vários componentes no Apigee Edge antes de chegar 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 conseguir respostas em tempo hábil, os valores de tempo limite de E/S são definidos em cada um dos componentes por onde passam as solicitações de API. Se algum dos componentes no fluxo demorar mais do que o anterior, ele expira e responde com erros 504 de tempo limite do gateway.

Ao configurar o tempo limite, os valores devem ser configurados em cada um dos componentes com o máximo de cuidado. Caso contrário, pode levar a erros 504 de tempo limite do gateway.

Neste documento, descrevemos as práticas recomendadas para configurar o tempo limite de E/S em vários componentes, por meio dos quais as solicitações de API fluem no Apigee Edge.

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

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

  • Primeiro componente: sempre use o tempo limite mais alto no primeiro componente no fluxo de solicitação de API, que é o aplicativo cliente na Apigee Edge.
  • Último componente:sempre use o menor tempo limite no último componente no fluxo de solicitação da API, que é o serviço de back-end na Apigee Edge.
  • Entre os componentes:verifique se há uma diferença de pelo menos 2 a 3 segundos no valor de tempo limite configurado em cada componente entre o primeiro e o último componente do 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 sendo exibidos pelo roteador.

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

  • Processador de mensagens: é sempre uma boa prática configurar (modificar) o valor de 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 sendo atendidos pelo processador de mensagens.

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

Exemplos de cenários

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

Cenário 1: solicitações diretamente para o Apigee Edge a partir de aplicativos clientes

Nesta seção, descrevemos as práticas recomendadas a serem seguidas ao definir 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 seu servidor de back-end.

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

Fluxo começando no cliente, indo para o roteador, depois para o processador de mensagens e depois para o servidor de back-end.

Se o Apigee Edge estiver configurado conforme mostrado no diagrama acima, sem 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 do fluxo. O menor tempo limite precisa ser definido no servidor de back-end.
  3. Configure os valores de tempo limite em cada um dos componentes na seguinte ordem:

    Configure o tempo limite no cliente, depois 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, roteador em 57 segundos, processador de mensagens em 55 segundos e servidor de back-end em 52 segundos

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

Nesta seção, descrevemos as práticas recomendadas a serem seguidas ao definir 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 e também entre o Apigee Edge e seu servidor de back-end.

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

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

Fluxo começando no Cliente, indo para o Componente intermediário 1 e, em seguida, para o Roteador, para o Processador de mensagens e para o Componente intermediário 2 e, por fim, para o Servidor de back-end.

Se o Apigee Edge estiver configurado como 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 mais alto do timeout precisa ser definido no cliente.
  2. O servidor de back-end é o último componente do fluxo. O menor valor do timeout deve ser definido no servidor de back-end.
  3. Configure os valores de tempo limite em cada um dos componentes, incluindo os componentes intermediários, na seguinte ordem:

    Configure o tempo limite no cliente, depois Componente intermediário 1, Roteador, Processador de mensagens, Componente intermediário 2 e 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 63 segundos, depois em Componente intermediário 1 aos 60 segundos, Roteador em 57 segundos, Processador de mensagens em 55 segundos, Componente intermediário 2 em 52 segundos e Servidor de back-end em 59 segundos