Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Что вы узнаете из этой темы
После прочтения этой статьи вы узнаете:
- Что такое потоковая передача запросов и ответов в Apigee Edge?
- Когда использовать потоковую передачу запросов и ответов?
- Как включить потоковую передачу запросов и ответов
Что такое потоковая передача запросов и ответов?
По умолчанию потоковая передача HTTP-запросов и ответов отключена, и данные HTTP-запросов и ответов записываются в буфер в памяти перед обработкой конвейером прокси-сервера API. Вы можете изменить это поведение, включив потоковую передачу. При включенной потоковой передаче данные запросов и ответов передаются без изменений в клиентское приложение (для ответов) и целевую конечную точку (для запросов).
Когда следует включать потоковую передачу?
Если ваш API-прокси обрабатывает очень большие запросы и/или ответы (информацию об ограничениях по размеру см. в разделе «Что еще нужно знать о потоковой передаче » ниже), возможно, вам стоит включить потоковую передачу.
Что ещё мне следует знать о стриминге?
В Edge Cloud и Private Cloud размер полезной нагрузки сообщения ограничен 10 МБ, даже при включенной потоковой передаче. В запросах и ответах без потоковой передачи превышение этого размера приводит к ошибке 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=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-прокси» для получения информации о загрузке и использовании примеров.
Примеры прокси-серверов с поддержкой потоковой передачи данных:
- Потоковая передача данных — демонстрирует API-прокси, настроенный для потоковой передачи HTTP-трафика.
- Пример использования: Генератор подписанных URL-адресов — демонстрирует передовой метод генерации подписанных URL-адресов для доступа к большим файлам вместо попытки потоковой передачи данных в запросе/ответе.