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

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

W Edge domyślnie ładunki żądań i odpowiedzi HTTP są przechowywane w buforze w pamięci, zanim zostaną przetworzone przez zasady w serwerze proxy interfejsu API.

Jeśli włączone jest przesyłanie strumieniowe, ładunki żądań i odpowiedzi są przesyłane strumieniowo bez modyfikacji do aplikacji klienckiej (w przypadku odpowiedzi) i docelowego punktu końcowego (w przypadku żądań). Przesyłanie strumieniowe jest przydatne szczególnie wtedy, gdy aplikacja akceptuje lub zwraca duże ładunki albo gdy aplikacja zwraca dane w częściach w czasie.

Antywzorzec

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

Rysunek 1: dostęp do ładunku żądania lub odpowiedzi przy włączonym przesyłaniu strumieniowym

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

Wpływ

  • Przesyłanie strumieniowe zostanie wyłączone, co może spowodować zwiększenie opóźnień w przetwarzaniu danych.
  • W przypadku procesorów wiadomości może wystąpić wzrost wykorzystania pamięci sterty lub błędy OutOfMemory z powodu używania buforów w pamięci, zwłaszcza jeśli mamy duże ładunki żądań i odpowiedzi.

Sprawdzona metoda

  • Nie uzyskuj dostępu do ładunku żądania lub odpowiedzi, gdy włączone jest przesyłanie strumieniowe.

Więcej informacji