Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Le richieste API effettuate dalle applicazioni client passano attraverso vari componenti in Apigee Edge prima di raggiungere i servizi di backend. La maggior parte delle applicazioni client si aspetta che le risposte a queste richieste vengano ricevute in modo tempestivo.
Per ottenere risposte tempestive, i valori di timeout I/O vengono impostati in ciascuno dei componenti attraverso i quali vengono inoltrate le richieste API. Se uno dei componenti del flusso richiede più tempo del componente precedente, il componente precedente scade e risponde con errori di timeout del gateway 504.
Durante la configurazione del timeout, i valori devono essere configurati in ciascuno dei componenti con la massima attenzione, altrimenti possono verificarsi errori di timeout del gateway 504.
Questo documento descrive le best practice per la configurazione del timeout I/O su vari componenti attraverso i quali le richieste API vengono inoltrate in Apigee Edge.
Best practice per la configurazione del timeout I/O
Tieni presente le seguenti best practice quando configuri il timeout I/O:
- Primo componente:utilizza sempre il timeout più elevato per il primo componente nel flusso di richieste dell'API, ovvero l'applicazione client in Apigee Edge.
- Ultimo componente: utilizza sempre il timeout più basso nell'ultimo componente del flusso di richieste dell'API, ovvero il servizio di backend in Apigee Edge.
- Tra i componenti:assicurati che tra il primo e l'ultimo componente del flusso sia presente una differenza di almeno 2-3 secondi nel valore di timeout configurato in ogni componente.
- Router:è sempre buona norma configurare (modificare) il valore del timeout I/O per un host virtuale specifico anziché sul router. In questo modo, il nuovo valore di timeout influisce solo sui proxy API che utilizzano l'host virtuale specifico e non su tutti i proxy API pubblicati dal router.
Configura (modifica) il timeout I/O sul router solo se hai la certezza assoluta che il nuovo valore del timeout I/O sia richiesto o applicabile a tutti i proxy API in esecuzione sul router.
- Elaboratore di messaggi:è sempre buona prassi configurare (modificare) il valore del timeout I/O per un proxy API specifico anziché nel Message Processor. In questo modo,
il nuovo valore del timeout influisce solo sul proxy API specifico e non su tutti i proxy API
gestiti dal Message Processor.
Configura (modifica) il timeout I/O nel Message Processor solo se hai la certezza assoluta che il nuovo valore del timeout I/O sia richiesto o applicabile a tutti i proxy API in esecuzione sul messaggio Processore.
Scenari di esempio
Gli scenari in questa sezione possono aiutarti a capire come impostare correttamente i valori di timeout I/O.
Scenario 1: richieste ad Apigee Edge direttamente dalle applicazioni client
Questa sezione descrive le best practice da seguire durante la configurazione dei valori di timeout in una configurazione di Apigee Edge in cui non sono presenti componenti intermedi tra l'applicazione client e Apigee Edge e tra Apigee Edge e il server di backend.
Configurazione di Apigee di esempio senza componenti intermedi
Se Apigee Edge è configurato come mostrato nel diagramma sopra, senza componenti intermedi, utilizza le seguenti best practice:
- L'applicazione client è il primo componente del flusso. Il valore del timeout più elevato deve essere impostato sul client.
- Il server di backend è l'ultimo componente del flusso. Il valore timeout più basso deve essere impostato sul server di backend.
- Configura i valori di timeout su ciascun componente nel seguente ordine:
L'esempio seguente mostra i valori di timeout impostati sui vari componenti in base alle linee guida riportate sopra per evitare problemi:
Scenario 2: richieste ad Apigee Edge dalle applicazioni client tramite componenti intermedi
Questa sezione descrive le best practice da seguire durante la configurazione dei valori di timeout in una configurazione di Apigee Edge in cui sono presenti uno o più componenti intermedi tra l'applicazione client e Apigee Edge, nonché tra Apigee Edge e il server di backend.
I componenti intermedi possono essere un bilanciatore del carico, una rete CDN (CDN), NGINX e così via.
Configurazione di Apigee di esempio con un componente intermedio tra il client e Apigee Edge e tra Apigee Edge e il server di backend
Se Apigee Edge è configurato come mostrato nel diagramma sopra, con uno o più componenti intermedi, utilizza le seguenti best practice:
- L'applicazione client è il primo componente del flusso. Il valore di timeout più alto deve essere impostato sul client.
- Il server di backend è l'ultimo componente del flusso. Il valore del timeout più basso deve essere impostato sul server di backend.
- Configura i valori di timeout su ciascun componente, inclusi i componenti intermedi, nel seguente ordine:
L'esempio seguente mostra i valori di timeout impostati sui vari componenti in base alle linee guida riportate sopra per evitare problemi: