Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Czego się nauczysz w tym temacie
Po przeczytaniu tego tematu będziesz wiedzieć:
- Czym jest strumieniowe przesyłanie żądań i odpowiedzi w Apigee Edge
- Kiedy używać strumieniowania żądań i odpowiedzi
- Jak włączyć strumieniowe przesyłanie żądań i odpowiedzi
Czym jest strumieniowe przesyłanie żądań i odpowiedzi?
Domyślnie strumieniowanie HTTP jest wyłączone, a ładunki żądań i odpowiedzi HTTP są zapisywane w buforze w pamięci przed przetworzeniem przez potok serwera proxy interfejsu API. Możesz zmienić to działanie, włączając strumieniowanie. Przy włączonym strumieniowaniu ładunki żądań i odpowiedzi są przesyłane strumieniowo bez modyfikacji do aplikacji klienckiej (w przypadku odpowiedzi) i docelowego punktu końcowego (w przypadku żądań).
Kiedy włączyć strumieniowanie?
Jeśli Twój serwer proxy interfejsu API obsługuje bardzo duże żądania lub odpowiedzi (limity rozmiarów znajdziesz w sekcji Co jeszcze muszę wiedzieć o strumieniowaniu), możesz włączyć strumieniowe przesyłanie danych.
Co jeszcze warto wiedzieć o transmisjach na żywo?
Rozmiar ładunku wiadomości jest ograniczony do 10 MB w Edge Cloud i Private Cloud, nawet przy włączonym strumieniowaniu. W przypadku niestrumieniowych żądań i odpowiedzi przekroczenie tego rozmiaru spowoduje błąd protocol.http.TooBigBody
.
W Edge for Private Cloud możesz zmienić limit rozmiaru niestrumieniowych żądań/odpowiedzi. Przeprowadź testy, zanim wdrożysz zmianę w środowisku produkcyjnym.
- W przypadku Edge for Private Cloud w wersji starszej niż 4.16.01:
W przypadku wszystkich procesorów wiadomości zmodyfikuj plikhttp.properties
, aby zwiększyć limit w parametrzeHTTPResponse.body.buffer.limit
, a następnie ponownie uruchom procesor wiadomości. -
W przypadku Edge for Private Cloud w wersji 4.16.01 lub nowszej:
-
Edytuj plik /<inst_root>/apigee/customer/application/message-processor.properties. Jeśli taki plik nie istnieje, utwórz go.
-
Ustaw właściwość conf_http_HTTPResponse.body.buffer.limit w message-processor.properties. Na przykład:
conf_http_HTTPResponse.body.buffer.limit=5m -
Ponownie uruchom procesor wiadomości:
> /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor restart -
Powtórz te czynności dla wszystkich procesorów wiadomości.
-
Jak włączyć strumieniowe przesyłanie żądań i odpowiedzi
Aby włączyć strumieniowe przesyłanie żądań, dodaj właściwość request.streaming.enabled
do definicji ProxyEndpoint i TargetEndpoint w pakiecie proxy i ustaw jej wartość na true
. W podobny sposób skonfiguruj właściwość response.streaming.enabled
, aby włączyć strumieniowe przesyłanie odpowiedzi.
Te pliki konfiguracji znajdziesz w interfejsie zarządzania w widoku Programowanie dla serwera proxy. Jeśli tworzysz aplikację lokalnie, pliki definicji znajdują się w regionach apiproxy/proxies
i apiproxy/targets
.
Ten przykład pokazuje, jak włączyć strumieniowe przesyłanie żądań i odpowiedzi w definicji docelowego punktu końcowego.
<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>
Ten przykład pokazuje, jak włączyć odpowiedź i żądanie strumieniowego przesyłania danych w definicji punktu końcowego 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>
Więcej informacji o konfigurowaniu definicji punktów końcowych znajdziesz w dokumentacji właściwości punktów końcowych.
Przykładowy kod powiązany
Przykłady z serwera proxy interfejsów API z GitHuba można łatwo pobrać i wykorzystać. Informacje o pobieraniu i używaniu tych przykładów znajdziesz w artykule Korzystanie z przykładowych serwerów proxy interfejsu API.
Przykładowe serwery proxy, które obsługują strumieniowanie:
- streaming – demonstruje serwer proxy interfejsu API skonfigurowany do strumieniowego przesyłania danych HTTP.
- Objaśnienie brzegowe: generator podpisanych adresów URL – pokazuje sprawdzoną metodę generowania podpisanego adresu URL w celu uzyskiwania dostępu do dużych plików zamiast próbować je odtwarzać strumieniowo w żądaniu lub odpowiedzi.