Żądania i odpowiedzi strumieniowania

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 plik http.properties, aby zwiększyć limit w parametrze HTTPResponse.body.buffer.limit, a następnie ponownie uruchom procesor wiadomości.
  • W przypadku Edge for Private Cloud w wersji 4.16.01 lub nowszej:
    1. Edytuj plik /<inst_root>/apigee/customer/application/message-processor.properties. Jeśli taki plik nie istnieje, utwórz go.

    2. Ustaw właściwość conf_http_HTTPResponse.body.buffer.limit w message-processor.properties. Na przykład:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Ponownie uruchom procesor wiadomości:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor restart

    4. 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.