Вы просматриваете документацию 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 и более поздних версий:
Отредактируйте файл /<inst_root>/apigee/customer/application/message-processor.properties . Если этот файл не существует, создайте его.
Установите свойство conf_http_HTTPResponse.body.buffer.limit в message-processor.properties . Например:
conf_http_HTTPResponse.body.buffer.limit=5мПерезапустите процессор сообщений:
> /<inst_root>/apigee/apigee-service/bin/apigee-service перезапуск процессора Edge-messageПовторите эти действия для всех процессоров сообщений.
Как включить потоковую передачу запросов и ответов
Чтобы включить потоковую передачу запросов, вам необходимо добавить свойство 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» .
Примеры прокси-серверов с потоковой передачей включают в себя:
- потоковая передача — демонстрирует прокси-сервер API, настроенный для потоковой передачи HTTP.
- Edge Callout: Генератор подписанных URL-адресов — иллюстрирует лучший метод создания подписанного URL-адреса для доступа к большим файлам вместо попытки потоковой передачи их в запросе/ответе.