Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Czego dowiesz się z tego artykułu
Po przeczytaniu tego artykułu dowiesz się:
- czym jest przesyłanie strumieniowe żądań i odpowiedzi w Apigee Edge;
- kiedy używać przesyłania strumieniowego żądań i odpowiedzi;
- jak włączyć przesyłanie strumieniowe żądań i odpowiedzi.
Co to jest przesyłanie strumieniowe żądań i odpowiedzi?
Domyślnie przesyłanie strumieniowe HTTP jest wyłączone, a ładunki żądań i odpowiedzi HTTP są zapisywane w buforze w pamięci, zanim zostaną przetworzone przez potok serwera proxy interfejsu API. Możesz zmienić to zachowanie, włączając przesyłanie strumieniowe. Gdy przesyłanie strumieniowe jest włączone, ł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 należy włączyć przesyłanie strumieniowe?
Jeśli serwer proxy interfejsu API obsługuje bardzo duże żądania lub odpowiedzi (limity rozmiaru znajdziesz w sekcji Co jeszcze należy wiedzieć o przesyłaniu strumieniowym poniżej), możesz włączyć przesyłanie strumieniowe.
Co jeszcze należy wiedzieć o przesyłaniu strumieniowym?
Rozmiar ładunku wiadomości jest ograniczony do 10 MB w Edge Cloud i
Private Cloud, nawet jeśli przesyłanie strumieniowe jest włączone. W przypadku żądań i odpowiedzi bez przesyłania strumieniowego przekroczenie
tego rozmiaru powoduje błąd protocol.http.TooBigBody.
W przypadku wdrożeń Edge for Private Cloud możesz zmodyfikować limit rozmiaru żądania/odpowiedzi bez przesyłania strumieniowego. Przed wdrożeniem zmiany w środowisku produkcyjnym przetestuj ją.
- W przypadku wersji Edge for Private Cloud wcześniejszych niż 4.16.01:
na wszystkich procesorach komunikatów otwórz do edycji plikhttp.properties, aby zwiększyć limit w parametrzeHTTPResponse.body.buffer.limit, a następnie ponownie uruchom procesor komunikatów. -
W przypadku wersji Edge for Private Cloud 4.16.01 i nowszych:
-
Otwórz do edycji plik /<inst_root>/apigee/customer/application/message-processor.properties. Jeśli ten plik nie istnieje, utwórz go.
-
Ustaw właściwość conf_http_HTTPResponse.body.buffer.limit w pliku message-processor.properties. Przykład:
conf_http_HTTPResponse.body.buffer.limit=5m -
Ponownie uruchom procesor komunikatów:
> /<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ć przesyłanie strumieniowe żądań i odpowiedzi
Aby włączyć przesyłanie strumieniowe żądań, musisz dodać właściwość request.streaming.enabled
do definicji ProxyEndpoint i TargetEndpoint w pakiecie serwera proxy i ustawić jej wartość na
true. Podobnie, aby włączyć przesyłanie strumieniowe odpowiedzi, ustaw właściwość response.streaming.enabled.
Te pliki konfiguracyjne znajdziesz w interfejsie zarządzania w widoku Tworzenie serwera proxy. Jeśli tworzysz serwer proxy lokalnie, te pliki definicji znajdują się w folderach apiproxy/proxies
i apiproxy/targets.
Ten przykład pokazuje, jak włączyć przesyłanie strumieniowe żądań i odpowiedzi w definicji TargetEndpoint definicji.
<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ć przesyłanie strumieniowe odpowiedzi i żądań w definicji ProxyEndpoint definicji:
<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 artykule Właściwości punktów końcowych.
Powiązane przykłady kodu
Przykłady serwerów proxy interfejsu API na GitHubie można łatwo pobrać i używać. Informacje o pobieraniu i używaniu przykładów znajdziesz w artykule Korzystanie z przykładowych serwerów proxy interfejsu API.
Przykładowe serwery proxy, które obsługują przesyłanie strumieniowe:
- streaming – pokazuje serwer proxy interfejsu API skonfigurowany do przesyłania strumieniowego HTTP.
- Edge Callout: Signed URL Generator – ilustruje najlepszą praktykę generowania podpisanego adresu URL w celu uzyskania dostępu do dużych plików zamiast przesyłania ich strumieniowo w żądaniu lub odpowiedzi.