Você está vendo a documentação do Apigee Edge.
Acesse a
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 do roteador representa o tempo que o roteador aguarda 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 dos roteadores pode ser aumentado ou reduzido a partir 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 expirar. 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, 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 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 expirar. Esta propriedade é usada para todos os hosts virtuais neste roteador. O valor padrão dessa propriedade é 57 segundos. É possível modificar essa propriedade, conforme explicado em Como configurar o tempo limite de E/S nos 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 para cada processador de mensagens. Isso é aplicável quando a instalação do Edge tem vários processadores de mensagens e a nova tentativa é ativada quando ocorrem erros. O valor pode ser um dos seguintes:
Assim como na propriedade |
Antes de começar
Antes de seguir as etapas deste documento, é importante entender os seguintes tópicos:
- Se você não conhece as propriedades do host virtual, leia a Referência de propriedade do host virtual.
- Se você não souber como configurar propriedades para o Edge na nuvem privada, leia Como configurar o Edge.
- Siga as práticas recomendadas para configurar o tempo limite de E/S.
Configurar o tempo limite de E/S no host virtual
Nesta seção, explicamos 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 por meio da propriedade proxy_read_timeout
, que representa o valor do tempo limite de E/S em segundos.
Configure o host virtual usando um dos seguintes métodos:
- interface do Edge
- API Edge
interface do Edge
Para configurar o host virtual usando a IU do Edge, faça o seguinte:
- Faça login na IU do Edge.
- Acesse Administrador > Hosts virtuais.
- Selecione um Ambiente específico em que você quer fazer essa alteração.
- Selecione o host virtual específico em que você quer configurar o novo valor de tempo limite de E/S.
- Em Propriedades, atualize o valor do 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:
- Encontre a configuração do host virtual atual usando a API
Acessar host virtual, 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 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 }
- Adicione a propriedade
proxy_read_timeout
ao payload JSON de configuração do host virtual atual emproperties
com o valor em segundos.Por exemplo, para mudar o tempo limite de E/S para 120 segundos, adicione o bloco de código
properties
, conforme mostrado abaixo:Exemplo de configuração atualizada do 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
virtualhost
com 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
Nesta seção, explicamos como verificar se o tempo limite de E/S foi modificado com êxito no host virtual usando a API Edge.
- Execute a API
Get virtual host para ver 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_timeout
foi definida com o novo valor.Exemplo de configuração atualizada do 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_timeout
foi definido com o novo valor de 120 segundos. - Se o valor antigo de
proxy_read_timeout,
ainda aparecer, verifique se você seguiu todas as etapas descritas em Como configurar o tempo limite de E/S no host virtual corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente. - Se ainda assim 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
Esta seção explica como configurar o tempo limite de E/S nos roteadores. O tempo limite de E/S pode ser
configurado por meio da propriedade do roteador
conf_load_balancing_load.balancing.driver.proxy.read.timeout
, que representa
o valor desse tempo em segundos.
Para configurar o tempo limite de E/S nos roteadores, faça o seguinte:
- Na máquina 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
- Adicione uma linha no seguinte formato ao arquivo
properties
, substituindo um valor portime_in_seconds
: - Salve as mudanças.
- 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 para todos eles.
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 mudar o tempo limite para dois minutos, adicione a seguinte linha:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
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 ê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, é necessário verificar se a propriedade proxy_read_timeout
real foi definida com o novo valor.
- Pesquise a propriedade
proxy_read_timeout
no diretório/opt/nginx/conf.d
e 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 êxito no roteador, o comando acima
vai mostrar o novo valor em todos os arquivos de configuração de host virtual.
Confira a seguir o exemplo de resultado do comando
grep
acima, 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_timeout
foi 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 o valor antigo da propriedade
proxy_read_timeout
ainda aparecer, verifique se você seguiu todas as etapas descritas em Como configurar o tempo limite de E/S nos roteadores corretamente. Se você esqueceu alguma etapa, repita todas as etapas corretamente. - Se ainda assim não for possível 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.