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

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

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 estas solicitações sejam recebidas em tempo hábil.

Para conseguir respostas rápidas, os valores de tempo limite de E/S são definidos em cada um dos componentes pelos quais as solicitações de API passam. Se algum dos componentes no fluxo levar mais tempo do que o componente anterior, o componente anterior vai atingir o tempo limite e responder com erros de tempo limite do gateway 504.

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

Este documento descreve as práticas recomendadas para configurar o tempo limite de E/S em vários componentes pelos quais as solicitações de API passam 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 de 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 de API, que é o serviço de back-end no Apigee Edge.
  • Entre componentes: garanta que haja 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 no fluxo.
  • Router: é 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 Router. 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 atendidos pelo Router.

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

  • 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 atendidos 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 de 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 nesta seção podem ajudar você a entender como definir corretamente os valores de tempo limite de E/S.

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

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, vai para o roteador, depois para o processador de mensagens e, por fim, 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 no 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 na ordem a seguir:

    Configure 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 dadas acima para evitar problemas:

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

Cenário 2: solicitações para o 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 e também 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), o 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, depois para o roteador, o processador de mensagens, o componente intermediário 2 e o servidor de back-end.

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

  1. O aplicativo cliente é o primeiro componente no 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 ordem a seguir:

    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 dadas acima para evitar problemas:

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