Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Questo documento spiega come configurare il timeout I/O per i processori di messaggi di Apigee Edge.
Il timeout I/O sul processore di messaggi rappresenta il tempo di attesa del processore di messaggi prima che scada il timeout per ricevere una risposta dal server di backend o che il socket sia pronto per scrivere una richiesta al server di backend.
Il valore predefinito del timeout I/O del processore di messaggi è 55 seconds. Questo periodo di timeout
è applicabile
ai server di backend configurati nella configurazione dell'endpoint di destinazione e nella policy ServiceCallout
del proxy API.
Il timeout I/O per i processori di messaggi può essere aumentato o diminuito rispetto al valore predefinito di
55 seconds in base alle tue esigenze. Può essere configurato nei seguenti punti:
- Nel proxy API
- Endpoint di destinazione
- Policy ServiceCallout
- 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 cui il processore di messaggi:
Se non riceve una risposta dal server di backend entro questo periodo di timeout, il processore di messaggi va in timeout.
Per impostazione predefinita, questa proprietà assume il valore impostato per la
Se questa proprietà viene modificata con un nuovo valore di timeout per un proxy API specifico, viene interessato solo quel proxy API. |
HTTPTransport.io.timeout.millis
|
Processore di messaggi |
Questo è il tempo massimo per cui il processore di messaggi:
Se non riceve una risposta dal server di backend entro questo periodo di timeout, il processore di messaggi va in timeout. 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 puoi
sovrascrivere questo valore impostando la proprietà |
Prima di iniziare
Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:
- Se non hai familiarità con il timeout I/O, consulta la
io.timeout.millisproprietà descrizione in TargetEndpoint Transport Property Specification. - Se non hai familiarità con la configurazione delle proprietà per Edge per il cloud privato, leggi How to configure Edge.
- Assicurati di seguire i consigli riportati in Best practices for configuring I/O timeout.
Configurare il timeout I/O nel proxy API
Il timeout I/O può essere configurato nei seguenti punti del proxy API:
- Endpoint di destinazione
- Policy ServiceCallout
Configurare il 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 del timeout I/O in millisecondi.
- Nell'interfaccia utente 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.milliscon un valore appropriato sotto l'elemento<HTTPTargetConnection>nella configurazioneTargetEndpoint. - Salva le modifiche apportate al proxy API.
Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi il seguente blocco di codice:
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>Poiché la proprietà io.timeout.millis è in millisecondi, il valore per
120 secondi è 120000.
Gli esempi seguenti mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:
Esempio di configurazione dell'endpoint di destinazione che utilizza 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 che utilizza 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>Configurare il timeout I/O nella policy ServiceCallout del proxy API
Questa sezione spiega come configurare il timeout I/O nella policy 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> sia la proprietà
io.timeout.millis rappresentano i valori del timeout I/O in millisecondi.
Puoi configurare il timeout I/O nella policy ServiceCallout utilizzando uno dei seguenti metodi:
<Timeout>elemento.- Proprietà
io.timeout.millis.
Elemento Timeout
Per configurare il timeout I/O nella policy ServiceCallout utilizzando l'elemento <Timeout>, procedi come segue:
- Nell'interfaccia utente di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per la policy ServiceCallout.
- Seleziona la policy ServiceCallout specifica che vuoi modificare.
- Aggiungi l'elemento
<Timeout>con un valore appropriato nella<ServiceCallout>configurazione.Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi la seguente riga di codice:
<Timeout>120000</Timeout>
Poiché l'elemento
<Timeout>è in millisecondi, il valore per 120 secondi è120000.L'esempio seguente mostra come configurare il timeout I/O nella policy ServiceCallout utilizzando l'elemento
<Timeout>:Esempio di configurazione della policy ServiceCallout che utilizza 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 nella policy ServiceCallout utilizzando la
io.timeout.millis proprietà, procedi come segue:
- Nell'interfaccia utente di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per la policy ServiceCallout.
- Seleziona la policy ServiceCallout specifica che vuoi modificare.
- Aggiungi la proprietà
io.timeout.milliscon un valore appropriato sotto l'<HTTPTargetConnection>elemento nella configurazione TargetEndpoint.Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi il seguente blocco di codice:
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>Poiché la proprietà
io.timeout.millisè in millisecondi, il valore per 120 secondi è120000.Gli esempi seguenti mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:
Esempio di configurazione della policy ServiceCallout che utilizza 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 della policy ServiceCallout che utilizza 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.
Configurare il 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 del timeout I/O in millisecondi sul componente del processore di messaggi,
utilizzando il token in base alla sintassi descritta in
How to configure
Edge.
Per configurare il timeout I/O sui processori di messaggi:
- Sulla macchina 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 seguente formato al file delle proprietà, sostituendo un valore per
TIME_IN_MILLISECONDS:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
Ad esempio, per modificare il timeout I/O sul processore di messaggi a 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 hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
Verificare il 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.
- Sulla macchina del processore di messaggi, cerca la proprietà
HTTPTransport.io.timeout.millisnella directory/opt/apigee/edge-message-processor/confe verifica 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 precedente
mostra il nuovo valore nel file
http.properties. - Se continui a visualizzare il vecchio valore 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 un passaggio, ripeti correttamente tutti i passaggi. - Se non riesci ancora a modificare il timeout I/O, contatta l'assistenza di Apigee Edge.
Il risultato di esempio del comando precedente dopo aver configurato il timeout I/O a 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. Ciò indica che il timeout I/O è configurato correttamente
a 120 secondi sul processore di messaggi.
Passaggi successivi
Scopri di più su Configurare il timeout I/O sui router