Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Что вы узнаете
Из этой статьи вы узнаете:
- Что такое потоковая передача запросов и ответов в Apigee Edge
- Когда использовать потоковую передачу запросов и ответов
- Как включить потоковую передачу запросов и ответов
Что такое потоковая передача запросов и ответов?
По умолчанию потоковая передача HTTP отключена, а полезные нагрузки HTTP-запросов и ответов записываются в буфер в памяти, прежде чем они будут обработаны конвейером прокси-сервера API. Вы можете изменить это поведение, включив потоковую передачу. Если потоковая передача включена, полезные нагрузки запросов и ответов передаются без изменений в клиентское приложение (для ответов) и целевую конечную точку (для запросов).
Когда следует включить стриминг?
Если ваш прокси-сервер API обрабатывает очень большие запросы и/или ответы (ограничения по размеру приведены в разделе Что ещё нужно знать о потоковой передаче ниже), вы можете включить потоковую передачу.
Что ещё нужно знать о стримах
Размер полезной нагрузки сообщения ограничен 10 МБ в Edge Cloud и Private Cloud, даже если включена потоковая передача. Если размер запроса или ответа без потоковой передачи превышает указанное значение, возникает ошибка protocol.http.TooBigBody.
В развертываниях Edge для частного облака можно изменить ограничение на размер запроса/ответа без потоковой передачи. Обязательно протестируйте изменения, прежде чем внедрять их в рабочую среду.
- Для версий Edge для частного облака, предшествующих 4.16.01:
На всех Message Processor измените файлhttp.properties, чтобы увеличить лимит в параметреHTTPResponse.body.buffer.limit, а затем перезапустите Message Processor. -
Для Edge for Private Cloud версии 4.16.01 и более поздних:
-
Измените файл /<inst_root>/apigee/customer/application/message-processor.properties. Если такого файла нет, создайте его.
-
Задайте свойство conf_http_HTTPResponse.body.buffer.limit в файле message-processor.properties. Пример:
conf_http_HTTPResponse.body.buffer.limit=5m -
Перезапустите обработчик сообщений:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart -
Повторите эти действия для всех процессоров сообщений.
-
Как включить потоковую передачу запросов и ответов
Чтобы включить потоковую передачу запросов, добавьте свойство 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…
Примеры прокси-серверов, поддерживающих потоковую передачу:
- streaming – пример прокси-сервера API, настроенного для потоковой передачи данных по протоколу HTTP.
- Выноска Edge: генератор подписанных URL. Иллюстрирует рекомендацию создавать подписанный URL для доступа к большим файлам вместо того, чтобы пытаться передавать их в потоковом режиме в запросе/ответе.