Você está vendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. informações
Este documento explica como configurar o tempo limite de E/S para os processadores de mensagens do Apigee Edge.
O tempo limite de E/S no processador de mensagens representa o tempo que o processador de mensagens espera para receber uma resposta do servidor de back-end ou até que o soquete esteja pronto para gravar uma solicitação no 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
é aplicável
aos servidores de back-end configurados na configuração do endpoint de destino e na política Service
do seu proxy de API.
O tempo limite de E/S dos processadores de mensagens pode ser aumentado ou reduzido a partir 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 seguintes propriedades controlam o tempo limite de E/S nos processadores de mensagens:
Nome da propriedade | Local | Descrição |
---|---|---|
io.timeout.millis
|
Proxy de API:
|
Esse é o tempo máximo para o qual o processador de mensagens realiza as seguintes ações:
Se não houver resposta do servidor de back-end dentro desse período, o processador de mensagens 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 proxy de API específico, somente esse proxy de API será afetado. |
HTTPTransport.io.timeout.millis
|
processador de mensagens |
Esse é o tempo máximo para o qual o processador de mensagens realiza as seguintes ações:
Se não houver resposta do servidor de back-end dentro desse período, o processador de mensagens vai expirar. Essa propriedade é usada para todos os proxies de API em execução neste processador de mensagens.
O valor padrão dessa propriedade é
Você pode modificar essa propriedade, conforme explicado em Como configurar o tempo limite de E/S em processadores de mensagens, ou substituir esse valor configurando a propriedade |
Antes de começar
Antes de seguir as etapas deste documento, é importante entender os seguintes tópicos:
- Se você não estiver familiarizado com o tempo limite de E/S, consulte a descrição da propriedade
io.timeout.millis
em Especificação da propriedade de transporte de TargetEndpoint. - Se você não souber como configurar propriedades do Edge para nuvem privada, leia Como configurar o Edge.
- Siga as recomendações em Práticas recomendadas para configurar o tempo limite de E/S.
Como configurar o tempo limite de E/S no proxy de API
O tempo limite de E/S pode ser configurado nos seguintes locais do proxy de API:
- Endpoint de destino
- Política ServiceCallout
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 por meio da propriedade io.timeout.millis
, que
representa o valor do tempo limite em milissegundos.
- 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.
- Selecione o endpoint de destino específico que você quer modificar.
- Adicione a propriedade
io.timeout.millis
com um valor adequado no elemento<HTTPTargetConnection>
na configuraçãoTargetEndpoint
. - Salve as alterações feitas no proxy de API.
Por exemplo, se quiser 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 para 120 segundos é 120000
.
Os exemplos a seguir mostram como definir o tempo limite de E/S na configuração do endpoint de destino do seu proxy de API:
Exemplo de configuração de endpoint de destino usando 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>
Como configurar o tempo limite de E/S na política Service callout do proxy de API
Nesta seção, explicamos como configurar o tempo limite de E/S na política ServiceCall do seu
proxy de API. O tempo limite de E/S pode ser configurado por meio do elemento <Timeout>
ou da propriedade io.timeout.millis
. O elemento <Timeout>
e a propriedade
io.timeout.millis
representam os valores de tempo limite de E/S em milissegundos.
É possível configurar o tempo limite de E/S na política Servicecitação usando um dos seguintes métodos:
- Elemento
<Timeout>
. - propriedade
io.timeout.millis
.
Elemento de tempo limite
Para configurar o tempo limite de E/S na política Servicecitação usando o elemento <Timeout>
, faça o seguinte:
- 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 Servicecitação.
- Selecione a política Servicecitação específica que você quer modificar.
- Adicione o elemento
<Timeout>
com um valor apropriado na configuração<ServiceCallout>
.Por exemplo, para mudar 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 é120000
.O exemplo a seguir mostra como configurar o tempo limite de E/S na política Service callout usando o elemento
<Timeout>
:Exemplo de configuração de política Service callout usando 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>
- 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 a propriedade
io.timeout.millis
, faça o seguinte:
- 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.
- Selecione a política Servicecitação específica que você quer modificar.
- Adicione a propriedade
io.timeout.millis
com um valor apropriado no elemento<HTTPTargetConnection>
na configuração do TargetEndpoint.Por exemplo, para alterar 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 para 120 segundos é120000
.Os exemplos a seguir mostram como definir o tempo limite de E/S na configuração do endpoint de destino do seu proxy de API:
Exemplo de configuração de política Service callout usando 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 ServiceFrase de destaque 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>
- Salve as alterações feitas no proxy de API.
Como configurar o tempo limite de E/S nos 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 do tempo limite de E/S em milissegundos no componente do processador de mensagens
usando o token de acordo com a sintaxe descrita em
Como configurar o
Edge.
Para configurar o tempo limite de E/S nos processadores de mensagens, faça o seguinte:
- Na máquina do processador de mensagens, abra o arquivo a seguir em um editor. Se ainda não existir, 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
- 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
- Salve as mudanças.
- Verifique se o arquivo de propriedades pertence ao usuário
apigee
, conforme mostrado abaixo:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Reinicie o processador de mensagens conforme mostrado abaixo:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se você tiver mais de um processador de mensagens, repita as etapas acima para todos eles.
Verificar o tempo limite de E/S nos processadores de mensagens
Esta seção explica como verificar se o tempo limite de E/S foi modificado com êxito nos 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, será necessário verificar se a propriedade HTTPTransport.io.timeout.millis
real foi definida com o novo valor.
- 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 ela foi definida com o novo valor, conforme mostrado abaixo:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- Se o novo valor de tempo limite de E/S for definido no processador de mensagens, o comando
acima vai mostrar o novo valor no arquivo
http.properties
. - Se o valor antigo da propriedade
HTTPTransport.io.timeout.millis
ainda aparecer, verifique se você seguiu todas as etapas descritas em Como configurar o tempo limite de E/S nos processadores de mensagens corretamente. Se você esqueceu 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.
O resultado da amostra do comando acima, depois de configurar o tempo limite de E/S como 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 definida com o novo valor 120000
em http.properties
. Isso indica que o tempo limite de E/S foi configurado com êxito para 120 segundos no processador de mensagens.
E agora?
Saiba mais sobre Como configurar o tempo limite de E/S em roteadores