Antipatrón: Accede a la carga útil de la solicitud o respuesta cuando la transmisión está habilitada

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

En Edge, el comportamiento predeterminado es que las cargas útiles de solicitud y respuesta HTTP se almacenen en un búfer en memoria antes de que las políticas del proxy de API las procesen.

Si la transmisión está habilitada, las cargas útiles de solicitud y respuesta se transmiten sin modificaciones a la app cliente (para las respuestas) y el extremo de destino (para las solicitudes). La transmisión es útil, en especial si una aplicación acepta o muestra cargas útiles grandes, o si hay una aplicación que muestra datos en fragmentos en el tiempo.

Antipatrón

El acceso a la carga útil de solicitud o respuesta con la transmisión habilitada hace que Edge regrese al modo de almacenamiento en búfer predeterminado.

Figura 1: Acceso a la carga útil de la solicitud o respuesta con la transmisión habilitada

En la ilustración anterior, se muestra que intentamos extraer variables de la carga útil de la solicitud y convertir la carga útil de la respuesta de JSON a XML mediante la política JSONToXML. Esto inhabilitará la transmisión en Edge.

Impacto

  • La transmisión se inhabilitará, lo que puede generar mayores latencias en el procesamiento de los datos.
  • Se puede observar el uso de la memoria del montón o errores de OutOfMemory en los procesadores de mensajes debido al uso de búferes en la memoria, especialmente si tienes cargas útiles grandes de solicitud o respuesta.

Práctica recomendada

  • No accedas a la carga útil de la solicitud o respuesta cuando la transmisión está habilitada.

Lecturas adicionales