Антишаблон: доступ к полезной нагрузке запроса/ответа при включенной потоковой передаче.

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В Edge поведение по умолчанию заключается в том, что полезные данные HTTP-запроса и ответа сохраняются в буфере в памяти до того, как они будут обработаны политиками в прокси-сервере API.

Если потоковая передача включена, полезные данные запросов и ответов передаются без изменений в клиентское приложение (для ответов) и целевую конечную точку (для запросов). Потоковая передача особенно полезна, если приложение принимает или возвращает большие полезные данные или если есть приложение, которое возвращает данные частями с течением времени.

Антипаттерн

Доступ к полезной нагрузке запроса/ответа с включенной потоковой передачей приводит к тому, что Edge возвращается в режим буферизации по умолчанию.

Рис. 1. Доступ к полезной нагрузке запроса/ответа при включенной потоковой передаче.

На рисунке выше показано, что мы пытаемся извлечь переменные из полезных данных запроса и преобразовать полезные данные ответа JSON в XML с использованием политики JSONToXML. Это отключит потоковую передачу в Edge.

Влияние

  • Потоковая передача будет отключена, что может привести к увеличению задержек при обработке данных.
  • Увеличение использования кучи памяти или ошибки OutOfMemory можно наблюдать на процессорах сообщений из-за использования буферов в памяти, особенно если у нас большие полезные данные запроса/ответа.

Лучшая практика

  • Не получайте доступ к полезной нагрузке запроса/ответа, когда потоковая передача включена.

Дальнейшее чтение