Antipattern: uzyskiwanie dostępu do ładunku żądań/odpowiedzi przy włączonym strumieniowaniu

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Domyślnie w Edge żądania i odpowiedzi HTTP są przechowywane w buforze w pamięci, zanim zostaną przetworzone przez zasady w serwerze proxy interfejsu API.

Jeśli strumieniowanie jest włączone, ładunki żądań i odpowiedzi są przesyłane bez zmian do aplikacji klienta (w przypadku odpowiedzi) i do punktu końcowego docelowego (w przypadku żądań). Strumieniowanie jest przydatne zwłaszcza wtedy, gdy aplikacja akceptuje lub zwraca duże ładunki lub gdy zwraca dane w kawałkach w ciągu czasu.

antywzorzec

Dostęp do ładunku żądania/odpowiedzi przy włączonym przesyłaniu strumieniowym powoduje, że Edge wraca do domyślnego trybu buforowania.

Rysunek 1. Dostęp do danych żądania/odpowiedzi przy włączonym strumieniowaniu

Ilustracja powyżej pokazuje, że próbujemy wyodrębnić zmienne z ładunku żądania i przekonwertować ładunek odpowiedzi JSON na XML za pomocą reguły JSONToXML. Spowoduje to wyłączenie strumieniowego przesyłania danych w Edge.

Wpływ

  • Strumieniowanie zostanie wyłączone, co może spowodować wydłużenie czasu przetwarzania danych.
  • W procesorach wiadomości można zaobserwować wzrost wykorzystania pamięci stosu lub błędy OutOfMemory spowodowane używaniem buforów w pamięci, zwłaszcza w przypadku dużych ładunków żądań/odpowiedzi.

Sprawdzona metoda

  • Nie uzyskuj dostępu do ładunku żądania/odpowiedzi, gdy strumieniowanie jest włączone.

Więcej informacji