Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza
Documentazione di Apigee Edge.
In Apigee, il comportamento predefinito è che i payload di richiesta e risposta HTTP siano archiviati in nel buffer in memoria prima che vengano elaborati dai criteri nel proxy API.
Se lo streaming è abilitato, i payload di richiesta e risposta vengono trasmessi in streaming senza modifiche all'app client (per le risposte) e all'endpoint di destinazione (per le richieste). Lo streaming è utile soprattutto se un'applicazione accetta o restituisce payload di grandi dimensioni oppure se esiste un'applicazione che restituisce i dati in blocchi nel tempo.
Antipattern
L'accesso al payload di richiesta/risposta con lo streaming abilitato fa sì che Apigee torni alla modalità di buffering predefinita.
L'illustrazione sopra mostra che stiamo tentando di estrarre le variabili dal payload della richiesta e di convertire il payload della risposta JSON in XML utilizzando il criterio JSONToXML. Lo streaming verrà disattivato in Apigee.
Impatto
- Lo streaming verrà disattivato, il che può comportare un aumento delle latenze nell'elaborazione dei dati
- È possibile osservare un aumento dell'utilizzo della memoria dell'heap o un errore di
OutOfMemory
nei processori di messaggi dovuto all’uso di buffer in memoria, soprattutto se abbiamo payload di richiesta/risposta di grandi dimensioni
Best practice
- Non accedere al payload della richiesta/risposta quando lo streaming è abilitato.
Per approfondire
- Richieste e risposte in streaming
- Come funzionano i flussi di dati Apigee?
- Come gestire i flussi di dati insieme al normale payload di richiesta/risposta in un singolo proxy API
- Best practice per la progettazione e lo sviluppo di proxy API