현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
이 주제의 과정 내용
이 주제를 읽고 나면 다음과 같은 사실을 알게 됩니다.
- Apigee Edge에서 요청 및 응답 스트리밍에 대한 정보
- 요청 및 응답 스트리밍을 사용해야 하는 경우
- 요청 및 응답 스트리밍을 사용 설정하는 방법
요청 및 응답 스트리밍 정보
기본적으로 HTTP 스트리밍은 사용 중지되며 HTTP 요청 및 응답 페이로드는 API 프록시 파이프라인에서 처리되기 전에 메모리의 버퍼에 기록됩니다. 스트리밍을 사용 설정하여 이 동작을 변경할 수 있습니다. 스트리밍이 사용 설정되면 클라이언트 앱(응답의 경우) 및 대상 엔드포인트(요청의 경우)가 수정되지 않고 요청 및 응답 페이로드가 스트리밍됩니다.
스트리밍은 언제 사용 설정해야 하나요?
API 프록시가 대규모 요청 및 응답을 처리하는 경우(크기 제한의 경우 아래의 스트리밍에 대해 알아야 할 기타 사항 참조) 스트리밍을 사용 설정할 수 있습니다.
스트리밍에 대해 알아야 할 기타 사항은 무엇인가요?
스트리밍이 사용 설정된 경우에도 에지 클라우드 및 프라이빗 클라우드에서 메시지 페이로드 크기가 10MB로 제한됩니다. 스트리밍되지 않은 요청 및 응답에서 크기를 초과하면 protocol.http.TooBigBody
오류가 발생합니다.
프라이빗 클라우드용 Edge 배포에서는 스트리밍되지 않은 요청/응답 크기 한도를 수정할 수 있습니다. 변경사항을 프로덕션에 배포하기 전에 테스트해야 합니다.
- 4.16.01 이전의 Edge for Private Cloud 출시 버전:
모든 메시지 프로세서에서http.properties
파일을 수정하여HTTPResponse.body.buffer.limit
매개변수의 한도를 늘린 후 메시지 프로세서를 다시 시작합니다. -
Edge for Private Cloud 출시 버전 4.16.01 이상의 경우:
-
/<inst_root>/apigee/customer/application/message-processor.properties 파일을 수정합니다. 이 파일이 없으면 새로 만듭니다.
-
message-processor.properties에 conf_http_HTTPResponse.body.buffer.limit 속성을 설정합니다. 예:
conf_http_HTTPResponse.body.buffer.limit=5m -
메시지 프로세서를 다시 시작합니다.
> /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor restart -
모든 메시지 프로세서에 대해 반복합니다.
-
요청 및 응답 스트리밍을 사용 설정하는 방법
요청 스트리밍을 사용 설정하려면 프록시 번들의 ProxyEndpoint 및 TargetEndpoint 정의에 request.streaming.enabled
속성을 추가하고 true
로 설정해야 합니다. 마찬가지로 response.streaming.enabled
속성을 설정하여 응답 스트리밍을 사용 설정합니다.
이러한 구성 파일은 프록시의 개발 뷰에 있는 관리 UI에서 찾을 수 있습니다. 로컬에서 개발하는 경우 이러한 정의 파일은 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>
엔드포인트 정의 구성에 대한 자세한 내용은 엔드포인트 속성 참조를 확인하세요.
관련 코드 샘플
GitHub의 API 프록시 샘플은 쉽게 다운로드하고 사용할 수 있습니다. 샘플을 다운로드하고 사용하는 방법은 샘플 API 프록시 사용을 참조하세요.
스트리밍 기능을 갖춘 샘플 프록시는 다음과 같습니다.
- 스트리밍 - HTTP 스트리밍을 위해 구성된 API 프록시를 보여줍니다.
- Edge 콜아웃: 서명된 URL 생성기 - 요청/응답에서 스트리밍하려고 시도하는 대신 대용량 파일에 액세스하기 위해 서명된 URL을 생성하는 권장사항을 설명합니다.