Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
Questo documento spiega come configurare il timeout I/O per i processori di messaggi Apigee Edge.
Il timeout I/O sul processore di messaggi rappresenta il tempo durante il quale il processore di messaggi attende di ricevere una risposta dal server di backend o che il socket sia pronto a scrivere una richiesta al server di backend, prima che scada.
Il valore predefinito di timeout del timeout del processore di messaggi è 55 seconds
. Questo periodo di timeout è applicabile ai server di backend configurati nella configurazione dell'endpoint di destinazione e nel criterio ServiceCallout del proxy API.
Il timeout I/O per i processori di messaggi può essere aumentato o diminuito dal valore predefinito di
55 seconds
in base alle tue esigenze. Può essere configurato nelle seguenti posizioni:
- Nel proxy API:
- Endpoint di destinazione
- Norme sui callout di servizio
- Sul processore di messaggi
Le seguenti proprietà controllano il timeout I/O sui processori di messaggi:
Nome proprietà | Località | Descrizione |
---|---|---|
io.timeout.millis
|
Proxy API:
|
Questo è il tempo massimo per il quale il processore di messaggi esegue le seguenti operazioni:
Se il server di backend non risponde entro questo periodo di timeout, si verifica il timeout del processore di messaggi.
Per impostazione predefinita, questa proprietà accetta il valore impostato per la
proprietà Se questa proprietà viene modificata con un nuovo valore di timeout per un proxy API specifico, è interessato solo quel proxy API. |
HTTPTransport.io.timeout.millis
|
processore di messaggi |
Questo è il tempo massimo per il quale il processore di messaggi esegue le seguenti operazioni:
Se il server di backend non risponde entro questo periodo di timeout, si verifica il timeout del processore di messaggi. Questa proprietà viene utilizzata per tutti i proxy API in esecuzione su questo processore di messaggi.
Il valore predefinito di questa proprietà è
Puoi modificare questa proprietà come spiegato in
Configurare il timeout I/O sui processori di messaggi oppure
sovrascrivere questo valore impostando la proprietà |
Prima di iniziare
Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:
- Se non hai dimestichezza con il timeout I/O, consulta la descrizione della proprietà
io.timeout.millis
nella specifica della proprietà Trasporto TargetEndpoint. - Se non hai dimestichezza con la configurazione delle proprietà di Edge per il cloud privato, leggi Come configurare Edge.
- Assicurati di seguire i suggerimenti riportati nella sezione Best practice per la configurazione del timeout di I/O.
Configurazione del timeout I/O nel proxy API
Il timeout I/O può essere configurato nelle seguenti posizioni del proxy API:
- Endpoint di destinazione
- Norme sui callout di servizio
Configurazione del timeout I/O nell'endpoint di destinazione del proxy API
Questa sezione spiega come configurare il timeout I/O nell'endpoint di destinazione del proxy API.
Il timeout I/O può essere configurato tramite la proprietà io.timeout.millis
, che rappresenta il valore di timeout I/O in millisecondi.
- Nella UI di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O.
- Seleziona l'endpoint di destinazione specifico che vuoi modificare.
- Aggiungi la proprietà
io.timeout.millis
con un valore appropriato sotto l'elemento<HTTPTargetConnection>
nella configurazioneTargetEndpoint
. - Salva le modifiche apportate al proxy API.
Ad esempio, per impostare il timeout I/O su 120 secondi, aggiungi il seguente blocco di codice:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>
Poiché la proprietà io.timeout.millis
è espressa in millisecondi, il valore di 120 secondi è 120000
.
I seguenti esempi mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:
Esempio di configurazione dell'endpoint di destinazione utilizzando l'URL per il server di backend
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Esempio di configurazione dell'endpoint di destinazione utilizzando il server di destinazione
<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>
Configurazione del timeout I/O nel criterio ServiceCallout del proxy API
Questa sezione spiega come configurare il timeout I/O nel criterio ServiceCallout del proxy API. Il timeout I/O può essere configurato tramite l'elemento <Timeout>
o la proprietà io.timeout.millis
. Sia l'elemento <Timeout>
che la
proprietà io.timeout.millis
rappresentano i valori di timeout I/O in millisecondi.
Puoi configurare il timeout I/O nel criterio ServiceCallout utilizzando uno dei seguenti metodi:
- Elemento
<Timeout>
. - Proprietà
io.timeout.millis
.
Elemento timeout
Per configurare il timeout I/O nel criterio ServiceCallout utilizzando l'elemento <Timeout>
, segui questi passaggi:
- Nella UI di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per il criterio ServiceCallout.
- Seleziona le norme ServiceCallout specifiche che vuoi modificare.
- Aggiungi l'elemento
<Timeout>
con un valore appropriato sotto la configurazione<ServiceCallout>
.Ad esempio, per impostare il timeout I/O su 120 secondi, aggiungi la seguente riga di codice:
<Timeout>120000</Timeout>
Poiché l'elemento
<Timeout>
è espresso in millisecondi, il valore di 120 secondi è120000
.L'esempio seguente mostra come configurare il timeout I/O nel criterio ServiceCallout utilizzando l'elemento
<Timeout>
:Esempio di configurazione dei criteri di ServiceCallout utilizzando l'URL per il server di backend
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Timeout>120000</Timeout> <HTTPTargetConnection> <Properties/> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>
- Salva le modifiche apportate al proxy API.
proprietà io.timeout.millis
Per configurare il timeout I/O nel criterio ServiceCallout utilizzando la
proprietà io.timeout.millis
, segui questi passaggi:
- Nella UI di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per il criterio ServiceCallout.
- Seleziona le norme ServiceCallout specifiche che vuoi modificare.
- Aggiungi la proprietà
io.timeout.millis
con un valore appropriato sotto l'elemento<HTTPTargetConnection>
nella configurazione TargetEndpoint.Ad esempio, per impostare il timeout I/O su 120 secondi, aggiungi il seguente blocco di codice:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>
Poiché la proprietà
io.timeout.millis
è espressa in millisecondi, il valore di 120 secondi è120000
.I seguenti esempi mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:
Esempio di configurazione dei criteri di ServiceCallout utilizzando l'URL per il server di backend
<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>
Esempio di configurazione dei criteri di ServiceCallout utilizzando il server di destinazione
<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>
- Salva le modifiche apportate al proxy API.
Configurazione del timeout I/O sui processori di messaggi
Questa sezione spiega come configurare il timeout I/O sui processori di messaggi.
Il timeout I/O può essere configurato tramite la proprietà HTTPTransport.io.timeout.millis
, che rappresenta il valore di timeout I/O in millisecondi sul componente Message Processor, utilizzando il token secondo la sintassi descritta in Come configurare Edge.
Per configurare il timeout I/O sui processori di messaggi, segui questi passaggi:
- Nel computer del processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/message-processor.properties
Ad esempio, per aprire il file utilizzando
vi
, inserisci il seguente comando:vi /opt/apigee/customer/application/message-processor.properties
- Aggiungi una riga nel formato seguente al file delle proprietà, sostituendo un valore per
TIME_IN_MILLISECONDS:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
Ad esempio, per impostare il timeout I/O sul processore di messaggi su 120 secondi, aggiungi la seguente riga:
conf_http_HTTPTransport.io.timeout.millis=120000
- Salva le modifiche.
- Assicurati che il file delle proprietà sia di proprietà dell'utente
apigee
, come mostrato di seguito:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Riavvia il processore di messaggi come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
Verifica del timeout I/O sui processori di messaggi
Questa sezione spiega come verificare che il timeout I/O sia stato modificato correttamente sui processori di messaggi.
Anche se utilizzi il token conf_http_HTTPTransport.io.timeout.millis
per impostare il timeout I/O sul processore di messaggi, devi verificare se la proprietà effettiva HTTPTransport.io.timeout.millis
è stata impostata con il nuovo valore.
- Nel computer del processore di messaggi, cerca la proprietà
HTTPTransport.io.timeout.millis
nella directory/opt/apigee/edge-message-processor/conf
e controlla se è stata impostata con il nuovo valore, come mostrato di seguito:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- Se il nuovo valore di timeout I/O viene impostato correttamente sul processore di messaggi, il comando riportato sopra mostra il nuovo valore nel file
http.properties
. - Se vedi ancora il valore precedente per la proprietà
HTTPTransport.io.timeout.millis
, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare il timeout I/O sui processori di messaggi. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi. - Se ancora non riesci a modificare il timeout I/O, contatta l'assistenza Apigee Edge.
Il risultato di esempio del comando precedente dopo aver configurato il timeout I/O su 120 secondi è il seguente:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
Nell'output di esempio riportato sopra, nota che la proprietà
HTTPTransport.io.timeout.millis
è stata impostata con il nuovo valore 120000
in
http.properties
. Questo indica che il timeout I/O è stato configurato correttamente su 120 secondi sul processore di messaggi.
Passaggi successivi
Scopri di più sulla configurazione del timeout I/O sui router