Потоковая передача запросов и ответов

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

Что вы узнаете в этой теме

Прочитав эту тему, вы узнаете:

  • Что такое потоковая передача запросов и ответов в Apigee Edge
  • Когда использовать потоковую передачу запросов и ответов
  • Как включить потоковую передачу запросов и ответов

Что такое потоковая передача запросов и ответов?

По умолчанию потоковая передача HTTP отключена, а полезные данные HTTP-запросов и ответов записываются в буфер в памяти перед их обработкой конвейером прокси-сервера API. Вы можете изменить это поведение, включив потоковую передачу. При включенной потоковой передаче полезные данные запросов и ответов передаются без изменений в клиентское приложение (для ответов) и целевую конечную точку (для запросов).

Когда мне следует включить потоковую передачу?

Если ваш прокси-сервер API обрабатывает очень большие запросы и/или ответы (ограничения на размер см. в разделе «Что еще нужно знать о потоковой передаче» ниже), вы можете включить потоковую передачу.

Что еще мне следует знать о потоковой передаче?

Размер полезной нагрузки сообщения ограничен 10 МБ в Edge Cloud и Private Cloud даже при включенной потоковой передаче. В непотоковых запросах и ответах превышение этого размера приводит к ошибке protocol.http.TooBigBody .

В развертываниях Edge для частного облака вы можете изменить ограничение размера непотоковых запросов и ответов. Обязательно протестируйте перед развертыванием изменения в рабочей среде.

  • Для выпусков Edge for Private Cloud до 4.16.01:

    На всех процессорах сообщений отредактируйте файл http.properties , увеличив предел параметра HTTPResponse.body.buffer.limit , а затем перезапустите процессор сообщений.
  • Для Edge for Private Cloud версии 4.16.01 и более поздних версий:
    1. Отредактируйте файл /<inst_root>/apigee/customer/application/message-processor.properties . Если этот файл не существует, создайте его.

    2. Установите свойство conf_http_HTTPResponse.body.buffer.limit в message-processor.properties . Например:
      conf_http_HTTPResponse.body.buffer.limit=5м

    3. Перезапустите процессор сообщений:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service перезапуск процессора Edge-message

    4. Повторите эти действия для всех процессоров сообщений.

Как включить потоковую передачу запросов и ответов

Чтобы включить потоковую передачу запросов, вам необходимо добавить свойство request.streaming.enabled в определения ProxyEndpoint и TargetEndpoint в пакете прокси и установить для него значение true . Аналогичным образом установите свойство response.streaming.enabled , чтобы включить потоковую передачу ответов.

Эти файлы конфигурации можно найти в пользовательском интерфейсе управления в представлении «Разработка» для вашего прокси-сервера. Если вы разрабатываете локально, эти файлы определений находятся в apiproxy/proxies и apiproxy/targets .

В этом примере показано, как включить потоковую передачу запросов и ответов в определении TargetEndpoint.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
  </HTTPTargetConnection>
</TargetEndpoint>

В этом примере показано, как включить потоковую передачу ответов и запросов в определении ProxyEndpoint:

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="allow.http10">true</Property>
      <Property name="response.streaming.enabled">true</Property>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
  </HTTPProxyConnection>
</ProxyEndpoint>

Дополнительные сведения о настройке определений конечных точек см. в разделе Справочник по свойствам конечных точек .

Связанные примеры кода

Образцы прокси API на GitHub легко загрузить и использовать. Информацию о загрузке и использовании примеров см. в разделе «Использование примеров прокси-серверов API» .

Примеры прокси-серверов с потоковой передачей включают в себя: