Anti-Pattern: Auf Anfrage-/Antwort-Nutzlast zugreifen, wenn Streaming aktiviert ist

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

Das Standardverhalten in Apigee 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 Apigee, in den Standardpuffermodus zurückzukehren.

Anfrage an Kontingentrichtlinie des Message Processor, um Variablen zum Ziel zu extrahieren.
            Ziel an Message Processor-JSONToXML an Antwort.
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 Apigee 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