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

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Das Standardverhalten in Edge ist, dass HTTP-Anfrage- und -Antwort-Nutzlasten in einem speicherinternen Zwischenspeicher 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. Das Streaming ist insbesondere dann hilfreich, wenn eine Anwendung große Nutzlasten akzeptiert oder zurückgibt oder wenn eine Anwendung Daten zurückgibt, die in Zeitblöcken zurückgegeben werden.

Anti-Pattern

Der Zugriff auf die Anfrage-/Antwort-Nutzlast mit aktiviertem Streaming veranlasst Edge, in den Standardpuffermodus zurückzukehren.

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.
  • Die Steigerung der Heap-Speichernutzung oder der OutOfMemory-Fehler kann aufgrund der Verwendung von In-Memory-Zwischenspeichern beobachtet werden, insbesondere wenn große Anfrage-/Antwort-Nutzlasten vorliegen.

Best Practice

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

Weitere Informationen