Como configurar o tempo limite de E/S em roteadores

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 nos roteadores do Apigee Edge.

O tempo limite de E/S no roteador representa o tempo que o roteador espera para receber uma resposta do processador de mensagens, após estabelecer a conexão e enviar a solicitação para o processador de mensagens. O valor padrão do tempo limite de E/S no roteador é de 57 segundos.

O tempo limite de E/S dos roteadores pode ser aumentado ou diminuído do valor padrão de 57 segundos com base nas suas necessidades. Ele pode ser configurado das seguintes maneiras:

  • Em um host virtual
  • No roteador

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

Nome da propriedade Local Descrição
proxy_read_timeout Host virtual

Especifica o tempo máximo que o roteador espera para receber uma resposta do depois de estabelecer a conexão e enviar a solicitação ao Processador de mensagens

Se não houver resposta do processador de mensagens dentro desse tempo limite, o O tempo limite do roteador se esgotou.

Por padrão, essa propriedade usa o valor definido para o conf_load_balancing_load.balancing.driver.proxy.read.timeout no roteador. A o valor padrão é 57 segundos.

Se essa propriedade for modificada com um novo valor de tempo limite para um host virtual específico, somente os proxies de API que usam esse host virtual específico serão afetados.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Roteador

Especifica o tempo máximo que o roteador espera para receber uma resposta do depois de estabelecer a conexão e enviar a solicitação ao Processador de mensagens

Se não houver resposta do processador de mensagens dentro desse tempo limite, o O tempo limite do roteador se esgotou.

Essa propriedade é usada para todos os hosts virtuais no roteador.

O valor padrão dessa propriedade é 57 segundos.

Você pode modificar essa propriedade conforme explicado nas Como configurar o tempo limite de E/S nos roteadores abaixo ou substitua esse valor definindo a propriedade proxy_read_timeout no nível do host virtual.

É possível definir o intervalo de tempo dessa propriedade como algo diferente de segundos usando o método seguinte notação:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout Roteador

Especifica o tempo total que o roteador espera para receber uma resposta de todas as mensagens Processadores, após estabelecer a conexão e enviar a solicitação para cada mensagem Processador

Isso se aplica quando a instalação do Edge tem vários processadores de mensagens e A nova tentativa é ativada quando ocorrem erros. Ele tem os seguintes valores:

  • O valor atual de conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • O valor padrão de 57 segundos

Assim como acontece com conf_load_balancing_load.balancing.driver.proxy.read.timeout , é possível especificar intervalos de tempo diferentes do padrão (segundos).

Antes de começar

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

.

Configurar o tempo limite de E/S no host virtual

Esta seção explica como configurar o tempo limite de E/S no host virtual associado a uma organização e ambiente. O tempo limite de E/S pode ser configurado no host virtual por meio do propriedade proxy_read_timeout, que representa o valor do tempo limite de E/S em segundos.

.

É possível configurar o host virtual usando um dos seguintes métodos:

  • interface do Edge
  • API Edge

interface do Edge

Para configurar o host virtual usando a interface do Edge, faça o seguinte:

  1. Faça login na IU do Edge.
  2. Acesse Administrador > Hosts virtuais.
  3. Selecione o Ambiente específico em que você quer fazer essa alteração.
  4. Selecione o host virtual específico para o qual você gostaria de configurar o novo Valor de tempo limite de E/S.
  5. Em Propriedades, atualize o valor em segundos do Tempo limite de leitura do proxy.

    Por exemplo, se você quiser mudar o tempo limite para 120 segundos, digite 120 como mostrado no figura a seguir:

    Valor de tempo limite de leitura de proxy de 120

  6. Salve a alteração.

API Edge

Para configurar o host virtual usando a API Edge, faça o seguinte:

  1. Obtenha a configuração atual do host virtual usando o Acesse a API Virtual Host como mostrado abaixo:

    Usuário da nuvem pública

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Usuário da nuvem privada

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Em que:

    {organization-name} é o nome da organização.

    {environment-name} é o nome do ambiente;

    {virtualhost-name} é o nome do host virtual.

    Exemplo de configuração do virtualhost

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. Adicione a propriedade proxy_read_timeout à configuração do host virtual Payload JSON em properties com o valor em segundos.

    Por exemplo, para mudar o tempo limite de E/S para 120 segundos, adicione properties. como mostrado abaixo:

    Exemplo de configuração de host virtual atualizada

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. Salve a configuração de host virtual atualizada em um arquivo. Exemplo: virtualhost-payload.json
  4. Atualize a configuração virtualhost com a mudança usando o método Atualize uma API de host virtual desta forma:

    Usuário da nuvem pública

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Usuário da nuvem privada

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Em que:

    {organization-name} é o nome da organização.

    {environment-name} é o nome do ambiente;

    {virtualhost-name} é o nome do host virtual.

Como verificar o tempo limite de E/S em hosts virtuais

Esta seção explica como verificar se o tempo limite de E/S foi modificado com sucesso no host virtual usando a API Edge.

  1. Execute o Consiga a API virtual host para receber a configuração virtualhost, conforme mostrado abaixo:

    Usuário da nuvem pública

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Usuário da nuvem privada

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Em que:

    {organization-name} é o nome da organização.

    {environment-name} é o nome do ambiente;

    {virtualhost-name} é o nome do host virtual.

  2. Verifique se a propriedade proxy_read_timeout foi definida com o novo valor.

    Exemplo de configuração de host virtual atualizada

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    No exemplo acima, o proxy_read_timeout foi definido com o novo valor de 120 segundos.

  3. Se você ainda vê o valor antigo de proxy_read_timeout,, verifique se seguir todas as etapas descritas em Como configurar o tempo limite de E/S no host virtual corretamente. Se você tiver pulado alguma etapa, repita-a corretamente.
  4. Se mesmo assim você não conseguir modificar o tempo limite de E/S, entre em contato com o suporte do Apigee Edge.

Como configurar o tempo limite de E/S nos roteadores

Esta seção explica como configurar o tempo limite de E/S nos roteadores. O tempo limite de E/S pode ser configurado na propriedade do roteador conf_load_balancing_load.balancing.driver.proxy.read.timeout, que representa o valor do tempo limite de E/S em segundos.

.

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

  1. Na máquina do roteador, abra o arquivo a seguir em um editor. Se ainda não existir, crie-o.
    /opt/apigee/customer/application/router.properties
    

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

    vi /opt/apigee/customer/application/router.properties
    
  2. Adicione uma linha no seguinte formato ao arquivo properties, substituindo um para time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

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

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    Você também pode modificar o tempo limite de E/S em minutos. Por exemplo, para alterar o tempo limite para dois minutos, adicione a seguinte linha:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. Salve as alterações.
  5. Verifique se esse arquivo de propriedades pertence ao usuário apigee, conforme mostrado abaixo:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Reinicie o roteador como mostrado abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Se você tiver mais de um roteador, repita as etapas acima em todos eles.

Como verificar o tempo limite de E/S nos roteadores

Esta seção explica como verificar se o tempo limite de E/S foi modificado com sucesso no entre os Cloud Routers.

Mesmo que você use o token conf_load_balancing_load.balancing.driver.proxy.read.timeout para definir o tempo limite de E/S. no roteador, você precisa verificar se a propriedade proxy_read_timeout tem com o novo valor.

  1. Pesquise a propriedade proxy_read_timeout na /opt/nginx/conf.d e verifique se ele foi definido com o novo valor da seguinte forma:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Se o novo valor de tempo limite de E/S for definido com sucesso no roteador, o comando acima mostra o novo valor em todos os arquivos de configuração do host virtual.

    Veja a seguir o resultado de amostra do comando grep acima quando o O tempo limite de E/S é de 120 segundos:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    No exemplo de saída acima, observe que a propriedade proxy_read_timeout foi definido com o novo valor 120 em 0-default.conf, que é o de configuração do host virtual padrão. Isso indica que o tempo limite de E/S foi configurado para 120 segundos no roteador.

  3. Se você ainda vir o valor antigo da propriedade proxy_read_timeout, Verifique se você seguiu todas as etapas descritas na Configurando o tempo limite de E/S nos roteadores corretamente. Se você tiver perdeu qualquer etapa, repita todas as etapas novamente corretamente.
  4. Se mesmo assim você não conseguir modificar o tempo limite de E/S, entre em contato com o suporte do Apigee Edge.

E agora?

Saiba mais sobre como configurar o tempo limite de E/S no processador de mensagens.