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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W przeglądarce Edge domyślne działanie polega na tym, że ładunki żądań i odpowiedzi HTTP są przechowywane w buforze pamięci, zanim zostaną przetworzone przez zasady w serwerze proxy interfejsu API.

Jeśli strumieniowe przesyłanie danych jest włączone, ładunki żądań i odpowiedzi są przesyłane strumieniowo bez modyfikacji do aplikacji klienckiej (w przypadku odpowiedzi) i docelowego punktu końcowego (w przypadku żądań). Strumieniowe przesyłanie danych jest przydatne zwłaszcza w przypadku aplikacji, które akceptują lub zwracają duże ładunki lub która zwraca dane we fragmentach w czasie.

Antywzór

Uzyskanie dostępu do ładunku żądania/odpowiedzi z włączonym strumieniowaniem powoduje, że Edge wraca do domyślnego trybu buforowania.

Rysunek 1. Uzyskiwanie dostępu do ładunku żą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 przy użyciu zasady JSONToXML. Spowoduje to wyłączenie strumieniowego przesyłania danych w Edge.

Wpływ

  • Strumieniowe przesyłanie danych zostanie wyłączone, co może wydłużyć czas przetwarzania danych
  • W przypadku procesorów wiadomości można zaobserwować wzrost wykorzystania pamięci sterty lub błędy braku pamięci z powodu użycia buforów w pamięci, zwłaszcza jeśli mamy duże ładunki żądań/odpowiedzi

Sprawdzona metoda

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

Więcej informacji