Como configurar o tempo limite de E/S em processadores de mensagens

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Neste documento, explicamos como configurar o tempo limite de E/S dos processadores de mensagens do Apigee Edge.

O tempo limite de E/S no processador de mensagens representa o tempo em que o espera para receber uma resposta do servidor de back-end ou para que o soquete esteja pronto para gravar uma solicitação ao servidor de back-end antes que ela expire.

O valor padrão do tempo limite de E/S do processador de mensagens é 55 seconds. Esse tempo limite período é aplicável aos servidores de back-end configurados na configuração do endpoint de destino e na chamada de serviço política do seu proxy de API.

O tempo limite de E/S para processadores de mensagens pode ser aumentado ou reduzido do valor padrão de 55 seconds com base nas suas necessidades. Ele pode ser configurado nos seguintes locais:

  • No proxy de API
    • Endpoint de destino
    • Política ServiceCallout
  • No processador de mensagens

As propriedades a seguir controlam o tempo limite de E/S nos processadores de mensagens:

Nome da propriedade Local Descrição
io.timeout.millis

Proxy de API:

  • Endpoint de destino
  • Política de chamadas de serviço

Esse é o tempo máximo durante o qual o processador de mensagens faz o seguinte:

  • Espera para receber uma resposta do servidor de back-end, após estabelecer a a conexão e enviar a solicitação ao servidor de back-end OU
  • Espera até que o soquete esteja pronto para que o processador de mensagens envie a solicitação para no servidor de back-end.

Se não houver resposta do servidor de back-end dentro desse tempo limite, o O tempo limite do processador de mensagens se esgotou.

Por padrão, essa propriedade usa o valor definido para o HTTPTransport.io.timeout.millis no processador de mensagens. O valor padrão é 55 seconds.

Se essa propriedade for modificada com um novo valor de tempo limite para um proxy de API específico, somente esse proxy de API será afetado.

HTTPTransport.io.timeout.millis processador de mensagens

Esse é o tempo máximo durante o qual o processador de mensagens faz o seguinte:

  • Espera para receber uma resposta do servidor de back-end, após estabelecer a conexão e enviar a solicitação ao servidor de back-end. OU
  • Espera até que o soquete esteja pronto para que o processador de mensagens envie a solicitação para no servidor de back-end.

Se não houver resposta do servidor de back-end dentro desse tempo limite, o O tempo limite do processador de mensagens se esgotou.

Essa propriedade é usada para todos os proxies de API em execução no processador de mensagens.

O valor padrão dessa propriedade é 55 seconds.

Você pode modificar essa propriedade conforme explicado nas Configurar o tempo limite de E/S em processadores de mensagens ou Substitua esse valor definindo a propriedade io.timeout.millis na API. nível de proxy.

Antes de começar

Antes de usar as etapas deste documento, é preciso entender os seguintes tópicos:

.

Como configurar o tempo limite de E/S no proxy de API

O tempo limite de E/S pode ser configurado nos seguintes locais de proxy de API:

  • Endpoint de destino
  • Política ServiceCallout

Como configurar o tempo limite de E/S no endpoint de destino do proxy de API

Nesta seção, explicamos como configurar o tempo limite de E/S no endpoint de destino do proxy de API. O tempo limite de E/S pode ser configurado pela propriedade io.timeout.millis, que representa o valor do tempo limite de E/S em milissegundos.

.
  1. Na interface do Edge, selecione o proxy de API específico em que você quer configurar o novo Valor de tempo limite de E/S.
  2. Selecione o endpoint de destino específico que você quer modificar.
  3. Adicione a propriedade io.timeout.millis com um valor apropriado no <HTTPTargetConnection> na configuração TargetEndpoint.
  4. Por exemplo, para mudar o tempo limite de E/S para 120 segundos, adicione o seguinte bloco de código:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Como a propriedade io.timeout.millis está em milissegundos, o valor de 120 segundos são 120000.

    Os exemplos a seguir mostram como configurar o tempo limite de E/S no endpoint de destino do proxy de API:

    Exemplo de configuração de endpoint de destino usando um URL para o servidor de back-end

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    Exemplo de configuração do endpoint de destino usando o servidor de destino

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  5. Salve as alterações feitas no proxy de API.

Como configurar o tempo limite de E/S na política Service callout do proxy de API

Esta seção explica como configurar o tempo limite de E/S na política Service callout do seu proxy de API. O tempo limite de E/S pode ser configurado pelo elemento <Timeout>. ou a propriedade io.timeout.millis. Tanto o elemento <Timeout> quanto o io.timeout.millis representa os valores de tempo limite de E/S em milissegundos.

.

É possível configurar o tempo limite de E/S na política Service callout usando um dos seguintes métodos:

  • <Timeout>.
  • io.timeout.millis.

Elemento de tempo limite

Para configurar o tempo limite de E/S na política ServiceCall usando o <Timeout> , faça o seguinte:

  1. Na interface do Edge, selecione o proxy de API específico em que você quer configurar a novo valor de tempo limite de E/S para a política Service callout.
  2. Selecione a política específica de ServiceChamada que você quer modificar.
  3. Adicione o elemento <Timeout> com um valor apropriado abaixo do <ServiceCallout>.

    Por exemplo, para alterar o tempo limite de E/S para 120 segundos, adicione a seguinte linha de código:

        <Timeout>120000</Timeout>
    

    Como o elemento <Timeout> está em milissegundos, o valor de 120 segundos são 120000.

    O exemplo a seguir mostra como configurar o tempo limite de E/S na ServiceChamada política usando o elemento <Timeout>:

    Exemplo de configuração de política de Service callout usando um URL para o servidor de back-end

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Salve as alterações feitas no proxy de API.

propriedade io.timeout.millis

Para configurar o tempo limite de E/S na política Service callout usando o io.timeout.millis, faça o seguinte:

  1. Na interface do Edge, selecione o proxy de API específico em que você quer configurar. o novo valor de tempo limite de E/S para a política Service callout.
  2. Selecione a política específica de ServiceChamada que você quer modificar.
  3. Adicione a propriedade io.timeout.millis com um valor apropriado no <HTTPTargetConnection> na configuração do TargetEndpoint.

    Por exemplo, para mudar o tempo limite de E/S para 120 segundos, adicione o seguinte bloco: de código:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Como a propriedade io.timeout.millis está em milissegundos, o valor de 120 segundos são 120000.

    Os exemplos a seguir mostram como configurar o tempo limite de E/S no endpoint de destino do proxy de API:

    Exemplo de configuração de política de Service callout usando um URL para o servidor de back-end

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    

    Exemplo de configuração da política Servicecall usando o servidor de destino

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Salve as alterações feitas no proxy de API.

Como configurar o tempo limite de E/S em processadores de mensagens

Esta seção explica como configurar o tempo limite de E/S nos processadores de mensagens. O tempo limite de E/S pode ser configurado pela propriedade HTTPTransport.io.timeout.millis. que representa o valor de tempo limite de E/S em milissegundos no componente Processador de mensagens, usando o token de acordo com a sintaxe descrita em Como configurar Edge (em inglês).

.

Para configurar o tempo limite de E/S nos processadores de mensagens, faça o seguinte:

  1. Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se não já existe, então crie-o.
    /opt/apigee/customer/application/message-processor.properties
    

    Por exemplo, para abrir o arquivo usando vi, digite o seguinte comando:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Adicione uma linha no seguinte formato ao arquivo de propriedades, substituindo um valor por TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Por exemplo, para alterar o tempo limite de E/S no processador de mensagens para 120 segundos, adicione a seguinte linha:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Salve as alterações.
  4. Verifique se o arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicie o processador de mensagens conforme mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Se você tiver mais de um processador de mensagens, repita as etapas acima em todas Processadores.

Como verificar o tempo limite de E/S em processadores de mensagens

Esta seção explica como verificar se o tempo limite de E/S foi modificado com sucesso no Processadores de mensagens

Mesmo que você use o token conf_http_HTTPTransport.io.timeout.millis para definir o tempo limite de E/S no processador de mensagens, é preciso verificar se a propriedade real HTTPTransport.io.timeout.millis foi definido com o novo valor.

  1. Na máquina do processador de mensagens, pesquise a propriedade HTTPTransport.io.timeout.millis. no diretório /opt/apigee/edge-message-processor/conf e verifique se ele foi definido com o novo valor, conforme mostrado abaixo:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Se o novo valor de tempo limite de E/S for definido com êxito no Processador de mensagens, o mostra o novo valor no arquivo http.properties.
  3. O resultado de amostra do comando acima depois que você configurou o tempo limite de E/S para 120 segundos é o seguinte:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    No exemplo de saída acima, observe que a propriedade HTTPTransport.io.timeout.millis foi definido com o novo valor 120000 em http.properties Isso indica que o tempo limite de E/S foi configurado a 120 segundos no processador de mensagens.

  4. Se você ainda estiver vendo o valor antigo da propriedade HTTPTransport.io.timeout.millis, Depois, verifique se você seguiu todas as etapas descritas Como configurar o tempo limite de E/S nos processadores de mensagens corretamente. Se você tiver perdeu qualquer etapa, repita todas as etapas novamente corretamente.
  5. Se mesmo assim você não conseguir modificar o tempo limite de E/S, entre em contato com Suporte do Apigee Edge.

E agora?

Saiba mais sobre Como configurar o tempo limite de E/S nos roteadores