스트리밍 요청 및 응답

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

이 주제의 과정 내용

이 주제를 읽고 나면 다음 사항을 알 수 있습니다.

  • Apigee Edge에서 요청 및 응답 스트리밍에 대한 정보
  • 요청 및 응답 스트리밍을 사용해야 하는 경우
  • 요청 및 응답 스트리밍을 사용 설정하는 방법

요청 및 응답 스트리밍 정보

기본적으로 HTTP 스트리밍은 사용 중지되며 HTTP 요청 및 응답 페이로드는 API 프록시 파이프라인에서 처리되기 전에 메모리의 버퍼에 기록됩니다. 스트리밍을 사용 설정하여 이 동작을 변경할 수 있습니다. 스트리밍이 사용 설정되면 클라이언트 앱(응답의 경우) 및 대상 엔드포인트(요청의 경우)가 수정되지 않고 요청 및 응답 페이로드가 스트리밍됩니다.

스트리밍은 언제 사용 설정해야 하나요?

API 프록시가 대규모 요청 및 응답을 처리하는 경우(크기 제한의 경우 아래의 스트리밍에 대해 알아야 할 기타 사항 참조) 스트리밍을 사용 설정할 수 있습니다.

스트리밍에 대해 알아야 할 기타 사항은 무엇인가요?

메시지 페이로드 크기는 Edge Cloud에서 10MB로 제한되며 프라이빗 클라우드(스트리밍 사용 설정 포함) 스트리밍되지 않은 요청 및 응답에서 크기를 초과하면 protocol.http.TooBigBody 오류가 발생합니다.

프라이빗 클라우드용 Edge 배포에서는 스트리밍되지 않은 요청/응답 크기를 수정할 수 있습니다. 있습니다. 프로덕션에 변경사항을 배포하기 전에 테스트해야 합니다.

  • 4.16.01 이전 버전의 Private Cloud용 Edge 출시:
    <ph type="x-smartling-placeholder">
    </ph> 모든 메시지 프로세서에서 http.properties 파일을 수정하여 HTTPResponse.body.buffer.limit 매개변수에 제한 값을 설정한 후 다시 시작하십시오. 메시지 프로세서의 일종입니다.
  • Private Cloud용 Edge 출시 버전 4.16.01 이상: <ph type="x-smartling-placeholder">
      </ph>
    1. /&lt;inst_root&gt;/apigee/customer/application/message-processor.properties 파일을 편집합니다. 해당 파일이 없으면 새로 만듭니다.

    2. conf_http_HTTPResponse.body.buffer.limit를 설정합니다. 속성(message-processor.properties)으로 이동합니다. 대상 예:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. 메시지 프로세서를 다시 시작합니다.
      &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor 다시 시작

    4. 모든 메시지 프로세서에 대해 작업을 반복합니다.

요청 및 응답 스트리밍을 사용 설정하는 방법

요청 스트리밍을 사용 설정하려면 프록시 번들의 ProxyEndpoint 및 TargetEndpoint 정의에 request.streaming.enabled 속성을 추가하고 true로 설정해야 합니다. 마찬가지로 response.streaming.enabled 속성을 설정하여 응답 스트리밍을 사용 설정합니다.

앱의 개발 보기에 있는 관리 UI에서 이러한 구성 파일을 사용할 수 있습니다 로컬에서 개발하는 경우 이러한 정의 파일은 apiproxy/proxiesapiproxy/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>

엔드포인트 정의 구성에 대한 자세한 내용은 엔드포인트 속성 참조를 확인하세요.

관련 코드 샘플

GitHub의 API 프록시 샘플은 쉽게 다운로드하고 사용할 수 있습니다. 자세한 내용은 샘플 API 프록시 사용을 참조하세요. 샘플 다운로드 및 사용

스트리밍 기능을 갖춘 샘플 프록시는 다음과 같습니다.

  • 스트리밍 - HTTP 스트리밍용으로 구성된 API 프록시를 보여줍니다.
  • Edge 콜아웃: 서명된 URL 생성기 - 요청/응답에서 스트리밍하는 대신 대용량 파일에 액세스하도록 서명된 URL을 생성하는 권장사항을 설명합니다.