Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Le richieste API effettuate dalle applicazioni client passano attraverso vari componenti di Apigee Edge prima di raggiungere i servizi di backend. La maggior parte delle applicazioni client si aspetta di ricevere le risposte a queste richieste in modo tempestivo.
Per ottenere risposte tempestive, i valori di timeout di I/O vengono impostati in ciascuno dei componenti attraverso i quali passano le richieste API. Se uno dei componenti nel flusso impiega più tempo del componente precedente, il componente precedente va in timeout e risponde con errori 504 Gateway Timeout.
Durante la configurazione del timeout, i valori devono essere configurati in ciascuno dei componenti con la massima attenzione, altrimenti possono verificarsi errori 504 Gateway Timeout.
Questo documento descrive le best practice per la configurazione del timeout di I/O su vari componenti attraverso i quali passano le richieste API in Apigee Edge.
Best practice per la configurazione del timeout di I/O
Tieni presente le seguenti best practice durante la configurazione del timeout di I/O:
- Primo componente: utilizza sempre il timeout più alto sul primo componente nel flusso di richieste API ovvero l'applicazione client in Apigee Edge.
- Ultimo componente: utilizza sempre il timeout più basso sull'ultimo componente nel flusso di richieste API, ovvero il servizio di backend in Apigee Edge.
- Tra i componenti: assicurati che ci sia una differenza di almeno 2-3 secondi nel valore di timeout configurato in ogni componente tra il primo e l'ultimo componente del flusso.
- Router: è sempre una buona pratica configurare (modificare) il valore di timeout di I/O per
un host virtuale specifico anziché configurarlo 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 gestiti dal router.
Configura (modifica) il timeout di I/O sul router solo quando sei assolutamente certo che il nuovo valore di timeout di I/O sia necessario o applicabile a tutti i proxy API in esecuzione sul router.
- Processore di messaggi: è sempre una buona pratica configurare (modificare) il valore di timeout di I/O
per un proxy API specifico anziché configurarlo sul processore di messaggi. In questo modo, il nuovo valore di timeout influisce solo sul proxy API specifico e non su tutti i proxy API gestiti dal processore di messaggi.
Configura (modifica) il timeout di I/O sul processore di messaggi solo quando sei assolutamente certo che il nuovo valore di timeout di I/O sia necessario o applicabile a tutti i proxy API in esecuzione sul processore di messaggi.
Scenari di esempio
Gli scenari in questa sezione possono aiutarti a capire come impostare correttamente i valori di timeout di 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.
Esempio di configurazione di Apigee 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 di timeout più alto deve essere impostato sul client.
- Il server di backend è l'ultimo componente del flusso. Il valore di timeout più basso deve essere impostato sul server di backend.
- Configura i valori di timeout su ciascuno dei componenti nel seguente ordine:
L'esempio seguente mostra i valori di timeout impostati sui vari componenti in base alle linee guida sopra riportate 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 e tra Apigee Edge e il server di backend.
I componenti intermedi possono essere un bilanciatore del carico, una rete CDN (Content Delivery Network) (CDN), NGINX e così via.
Esempio di configurazione di Apigee 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 componenti, 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 di timeout più basso deve essere impostato sul server di backend.
- Configura i valori di timeout su ciascuno dei componenti, inclusi i componenti intermedi, nel seguente ordine:
L'esempio seguente mostra i valori di timeout impostati sui vari componenti in base alle linee guida sopra riportate per evitare problemi: