Você está lendo a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. info
Este documento explica 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, depois de estabelecer a conexão e enviar a solicitação ao processador de mensagens. O valor padrão do tempo limite de E/S no roteador é de 57 segundos.
O tempo limite de E/S para 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 seguintes propriedades 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 processador de mensagens, 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 período, o roteador vai atingir o tempo limite. Por padrão, essa propriedade usa o valor definido para a propriedade Se essa propriedade for modificada com um novo valor de tempo limite para um host virtual específico, apenas os proxies de API que usam esse host virtual 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 processador de mensagens, 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 período, o roteador vai atingir o tempo limite. Essa propriedade é usada para todos os hosts virtuais no roteador. O valor padrão dessa propriedade é 57 segundos. É possível modificar essa propriedade conforme explicado em
Configurar o tempo limite de E/S em roteadores abaixo ou substituir
esse valor definindo a propriedade É possível definir o intervalo de tempo para essa propriedade como algo diferente de segundos usando a 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 todos os processadores de mensagens, depois de estabelecer a conexão e enviar a solicitação a cada um deles. Isso é aplicável quando a instalação do Edge tem vários processadores de mensagens e a nova tentativa é ativada quando ocorrem erros. Ele tem um dos seguintes valores:
Assim como na propriedade |
Antes de começar
Antes de seguir as etapas deste documento, confira se você entende os seguintes tópicos:
- Se você não estiver familiarizado com as propriedades de host virtual, leia Referência de propriedade de host virtual.
- Se você não sabe como configurar propriedades para o Edge na nuvem privada, leia Como configurar o Edge.
- Siga as recomendações de práticas recomendadas para configurar o tempo limite de E/S.
Como 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 um ambiente. O tempo limite de E/S pode ser configurado no host virtual usando a propriedade proxy_read_timeout, que representa o valor de 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:
- Faça login na interface do Edge.
- Acesse Administrador > Hosts virtuais.
- Selecione um ambiente específico em que você quer fazer essa mudança.
- Selecione o host virtual específico para o qual você quer configurar o novo valor de tempo limite de E/S.
- Em Propriedades, atualize o valor de Tempo limite de leitura do proxy em segundos.
Por exemplo, se você quiser mudar o tempo limite para 120 segundos, digite 120, conforme mostrado na figura a seguir:
- Salve a mudança.
API Edge
Para configurar o host virtual usando a API Edge, faça o seguinte:
- Receba a configuração atual do host virtual usando a API
Get virtual host, 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-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 de host virtual
{ "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 } - Adicione a propriedade
proxy_read_timeoutao payload JSON da configuração de host virtual existente empropertiescom o valor em segundos.Por exemplo, para mudar o tempo limite de E/S para 120 segundos, adicione o bloco de código
propertiesconforme mostrado abaixo:Exemplo de configuração atualizada de host virtual
{ "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 } - Salve a configuração atualizada do host virtual em um arquivo. Exemplo:
virtualhost-payload.json - Atualize a configuração
virtualhostcom a mudança usando a API Atualizar um host virtual da seguinte maneira: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.
- Execute a API
Get 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.
- Verifique se a propriedade
proxy_read_timeoutfoi definida com o novo valor.Exemplo de configuração atualizada de host virtual
{ "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, observe que o
proxy_read_timeoutfoi definido com o novo valor de 120 segundos. - Se você ainda vir o valor antigo de
proxy_read_timeout,, verifique se seguiu todas as etapas descritas em Configurar o tempo limite de E/S no host virtual corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente. - Se ainda não for possível modificar o tempo limite de E/S, entre em contato com o suporte do Apigee Edge.
Como configurar o tempo limite de E/S em roteadores
Nesta seção, explicamos como configurar o tempo limite de E/S nos roteadores. O tempo limite de E/S pode ser configurado usando a propriedade do roteador conf_load_balancing_load.balancing.driver.proxy.read.timeout, que representa o valor de tempo limite de E/S em segundos.
Para configurar o tempo limite de E/S nos roteadores, faça o seguinte:
- Na máquina do roteador, abra o seguinte arquivo em um editor. Se ele ainda não existir, crie-o.
/opt/apigee/customer/application/router.properties
Por exemplo, para abrir o arquivo com
vi, insira o seguinte comando:vi /opt/apigee/customer/application/router.properties
- Adicione uma linha no seguinte formato ao arquivo
properties, substituindo um valor portime_in_seconds: - Salve as alterações.
- Verifique se esse arquivo de propriedades pertence ao usuário
apigee, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Reinicie o roteador conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Se você tiver mais de um roteador, repita as etapas acima em todos eles.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
Por exemplo, para mudar 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
Também é possível modificar o tempo limite de E/S em minutos. Por exemplo, para mudar o tempo limite para dois minutos, adicione a seguinte linha:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Verificar o tempo limite de E/S nos roteadores
Nesta seção, explicamos como verificar se o tempo limite de E/S foi modificado com êxito nos roteadores.
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, verifique se a propriedade proxy_read_timeout foi
definida com o novo valor.
- Pesquise a propriedade
proxy_read_timeoutno diretório/opt/nginx/conf.de verifique se ela foi definida com o novo valor da seguinte maneira:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- Se o novo valor de tempo limite de E/S for definido com sucesso no roteador, o comando acima
vai mostrar o novo valor em todos os arquivos de configuração de host virtual.
Confira a seguir o resultado de amostra do comando
grepacima quando 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_timeoutfoi definida com o novo valor 120 em0-default.conf, que é o arquivo de configuração do host virtual padrão. Isso indica que o tempo limite de E/S foi configurado com sucesso para 120 segundos no roteador. - Se você ainda encontrar o valor antigo da propriedade
proxy_read_timeout, verifique se seguiu todas as etapas descritas em Configurar o tempo limite de E/S em roteadores corretamente. Se você perdeu alguma etapa, repita todas as etapas corretamente. - Se ainda não for possível modificar o tempo limite de E/S, entre em contato com o suporte do Apigee Edge.
E agora?
Saiba como configurar o tempo limite de E/S no processador de mensagens