Anti-Pattern: Zugriff auf die Nutzlast der Anfrage/Antwort, wenn Streaming aktiviert ist

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In Edge besteht das Standardverhalten darin, dass Nutzlasten von HTTP-Anfragen und -Antworten in einem Zwischenspeicher im Arbeitsspeicher gespeichert werden, bevor sie von den Richtlinien im API-Proxy verarbeitet werden.

Wenn das Streaming aktiviert ist, werden die Nutzlasten von Anfragen und Antworten ohne Änderung an der Clientanwendung (für Antworten) und dem Zielendpunkt (für Anfragen) gestreamt. Streaming ist insbesondere dann nützlich, wenn eine Anwendung große Nutzlasten akzeptiert oder zurückgibt oder wenn eine Anwendung Daten im Zeitverlauf in Blöcken zurückgibt.

Anti-Pattern

Der Zugriff auf die Nutzlast der Anfrage/Antwort bei aktiviertem Streaming führt dazu, dass Edge in den Standard-Puffermodus zurückkehrt.

Abbildung 1: Auf Anfrage-/Antwort-Nutzlast mit aktiviertem Streaming zugreifen

Die Abbildung oben zeigt, dass wir versuchen, Variablen aus der Nutzlast der Anfrage zu extrahieren und die Nutzlast der JSON-Antwort mithilfe der JSONToXML-Richtlinie in XML umzuwandeln. Dadurch wird das Streaming in Edge deaktiviert.

Auswirkungen

  • Das Streaming wird deaktiviert, was zu höheren Latenzen bei der Datenverarbeitung führen kann.
  • Eine Erhöhung der Heap-Arbeitsspeichernutzung oder OutOfMemory-Fehler kann bei Message Processorn aufgrund der Verwendung von In-Memory-Puffern beobachtet werden, insbesondere wenn wir große Nutzlasten von Anfragen/Antworten haben.

Best Practice

  • Greifen Sie nicht auf die Anfrage-/Antwort-Nutzlast zu, wenn das Streaming aktiviert ist.

Weitere Informationen