Anti-pattern: accede al payload di richiesta/risposta quando è abilitato il flusso di dati

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

In Edge, il comportamento predefinito è che i payload HTTP di richiesta e risposta vengono archiviati in un buffer in memoria prima di essere elaborati dai criteri nel proxy API.

Se il flusso di dati è abilitato, i payload di richiesta e risposta vengono trasmessi senza modifiche all'app client (per le risposte) e all'endpoint di destinazione (per le richieste). I flussi di dati sono utili soprattutto se un'applicazione accetta o restituisce payload di grandi dimensioni o se è presente un'applicazione che restituisce i dati in blocchi nel tempo.

Antipattern

Quando si accede al payload di richiesta/risposta con i flussi di dati abilitati, Edge torna alla modalità di buffer predefinita.

Figura 1: accesso al payload di richiesta/risposta con i flussi di dati abilitati

L'illustrazione sopra mostra che stiamo cercando di estrarre variabili dal payload della richiesta e di convertire il payload della risposta JSON in XML utilizzando il criterio JSONToXML. Questo disabiliterà il flusso in Edge.

Impatto

  • Il flusso di dati verrà disabilitato, il che può portare a un aumento delle latenze nell'elaborazione dei dati
  • È possibile osservare un aumento dell'utilizzo della memoria heap o errori di memoria insufficiente sui processori di messaggi a causa dell'uso di buffer in memoria, soprattutto se abbiamo payload di richiesta/risposta di grandi dimensioni

Best practice

  • Non accedere al payload di richiesta/risposta quando è abilitato il flusso di dati.

Per approfondire