Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
이 문서에서는 Apigee Edge 메시지 프로세서의 I/O 제한 시간을 구성하는 방법을 설명합니다.
메시지 프로세서의 I/O 제한 시간은 메시지 프로세서 가 백엔드 서버로부터 응답을 수신하거나 소켓이 백엔드 서버에 요청을 쓸 준비가 될 때까지 기다리는 시간을 나타냅니다. 이 시간이 지나면 제한 시간이 초과됩니다.
메시지 프로세서 I/O 제한 시간의 기본값은 55 seconds입니다. 이 제한 시간
은 대상 엔드포인트 구성 및 API 프록시의 ServiceCallout
정책에 구성된 백엔드 서버에 적용됩니다.
메시지 프로세서의 I/O 제한 시간은 필요에 따라 기본값인
55 seconds에서 늘리거나 줄일 수 있습니다. 다음 위치에서 구성할 수 있습니다.
- API 프록시
- 대상 엔드포인트
- ServiceCallout 정책
- 메시지 프로세서
다음 속성은 메시지 프로세서의 I/O 제한 시간을 제어합니다.
| 속성 이름 | 위치 | 설명 |
|---|---|---|
io.timeout.millis
|
API 프록시:
|
메시지 프로세서가 다음 작업을 수행하는 최대 시간입니다.
이 제한 시간 내에 백엔드 서버로부터 응답이 없으면 메시지 프로세서의 제한 시간이 초과됩니다.
기본적으로 이 속성은 메시지 프로세서의
이 속성이 특정 API 프록시의 새 제한 시간 값으로 수정되면 해당 API 프록시에만 영향을 미칩니다. |
HTTPTransport.io.timeout.millis
|
메시지 프로세서 |
메시지 프로세서가 다음 작업을 수행하는 최대 시간입니다.
이 제한 시간 내에 백엔드 서버로부터 응답이 없으면 메시지 프로세서의 제한 시간이 초과됩니다. 이 속성은 이 메시지 프로세서에서 실행되는 모든 API 프록시에 사용됩니다.
이 속성의 기본값은
메시지 프로세서에서 I/O 제한 시간 구성에 설명된 대로 이 속성을 수정하거나 API 프록시 수준에서 |
시작하기 전에
이 문서의 단계를 사용하기 전에 다음 주제를 이해해야 합니다.
- I/O 제한 시간에 익숙하지 않다면
대상 엔드포인트 전송 속성 사양의
io.timeout.millis속성 설명을 참조하세요. - Edge for Private Cloud의 속성 구성에 익숙하지 않다면 Edge 구성 방법을 읽어보세요.
- I/O 제한 시간 구성 권장사항의 권장사항을 따르세요.
API 프록시에서 I/O 제한 시간 구성
I/O 제한 시간은 다음 API 프록시 위치에서 구성할 수 있습니다.
- 대상 엔드포인트
- ServiceCallout 정책
API 프록시의 대상 엔드포인트에서 I/O 제한 시간 구성
이 섹션에서는 API 프록시의 대상 엔드포인트에서 I/O 제한 시간을 구성하는 방법을 설명합니다.
I/O 제한 시간은 밀리초 단위의 I/O 제한 시간 값을 나타내는 io.timeout.millis 속성을 통해 구성할 수 있습니다.
- Edge UI에서 새 I/O 제한 시간 값을 구성하려는 특정 API 프록시를 선택합니다.
- 수정하려는 특정 대상 엔드포인트를 선택합니다.
TargetEndpoint구성의<HTTPTargetConnection>요소 아래에 적절한 값이 있는io.timeout.millis속성을 추가합니다.- API 프록시에 적용한 변경사항을 저장합니다.
예를 들어 I/O 제한 시간을 120초로 변경하려면 다음 코드 블록을 추가합니다.
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>io.timeout.millis 속성은 밀리초 단위이므로 120초의 값은 120000입니다.
다음 예에서는 API 프록시의 대상 엔드포인트 구성에서 I/O 제한 시간을 구성하는 방법을 보여줍니다.
백엔드 서버의 URL을 사용하는 대상 엔드포인트 구성 예
<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>https://mocktarget.apigee.net/json</URL>
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>
</HTTPTargetConnection>
</TargetEndpoint>대상 서버를 사용하는 대상 엔드포인트 구성 예
<TargetEndpoint name="default">
<HTTPTargetConnection>
<LoadBalancer>
<Server name="target1" />
<Server name="target2" />
</LoadBalancer>
<Properties>
<Property name="io.timeout.millis">120000</Property>
</Properties>
<Path>/test</Path>
</HTTPTargetConnection>
</TargetEndpoint>API 프록시의 ServiceCallout 정책에서 I/O 제한 시간 구성
이 섹션에서는 API 프록시의 ServiceCallout 정책에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 <Timeout> 요소
또는 io.timeout.millis 속성을 통해 구성할 수 있습니다. <Timeout> 요소와
io.timeout.millis 속성은 모두 밀리초 단위의 I/O 제한 시간 값을 나타냅니다.
다음 방법 중 하나를 사용하여 ServiceCallout 정책에서 I/O 제한 시간을 구성할 수 있습니다.
<Timeout>요소.io.timeout.millis속성.
제한 시간 요소
<Timeout>
요소를 사용하여 ServiceCallout 정책에서 I/O 제한 시간을 구성하려면 다음 단계를 따르세요.
- Edge UI에서 ServiceCallout 정책의 새 I/O 제한 시간 값을 구성하려는 특정 API 프록시를 선택합니다.
- 수정하려는 특정 ServiceCallout 정책을 선택합니다.
- 적절한 값이 있는
<Timeout>요소를<ServiceCallout>구성 아래에 추가합니다.예를 들어 I/O 제한 시간을 120초로 변경하려면 다음 코드 줄을 추가합니다.
<Timeout>120000</Timeout>
<Timeout>요소는 밀리초 단위이므로 120초의 값은120000입니다.다음 예에서는 ServiceCallout 정책에서
<Timeout>요소를 사용하여 I/O 제한 시간을 구성하는 방법을 보여줍니다.백엔드 서버의 URL을 사용하는 ServiceCallout 정책 구성 예
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Timeout>120000</Timeout> <HTTPTargetConnection> <Properties/> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout> - API 프록시에 적용한 변경사항을 저장합니다.
io.timeout.millis 속성
ServiceCallout 정책에서 I/O 제한 시간을 구성하려면
io.timeout.millis 속성을 사용하여 다음 단계를 따르세요.
- Edge UI에서 ServiceCallout 정책의 새 I/O 제한 시간 값을 구성하려는 특정 API 프록시를 선택합니다.
- 수정하려는 특정 ServiceCallout 정책을 선택합니다.
- TargetEndpoint 구성의
<HTTPTargetConnection>요소 아래에 적절한 값이 있는io.timeout.millis속성을 추가합니다.예를 들어 I/O 제한 시간을 120초로 변경하려면 다음 코드 블록 을 추가합니다.
<Properties> <Property name="io.timeout.millis">120000</Property> </Properties>io.timeout.millis속성은 밀리초 단위이므로 120초의 값은120000입니다.다음 예에서는 API 프록시의 대상 엔드포인트 구성에서 I/O 제한 시간을 구성하는 방법을 보여줍니다.
백엔드 서버의 URL을 사용하는 ServiceCallout 정책 구성 예
<ServiceCallout name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <HTTPTargetConnection> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <URL>https://mocktarget.apigee.net/json</URL> </HTTPTargetConnection> </ServiceCallout>대상 서버를 사용하는 ServiceCallout 정책 구성 예
<ServiceCallout enabled="true" name="Service-Callout-1"> <DisplayName>ServiceCallout-1</DisplayName> <Response>calloutResponse</Response> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Properties> <Property name="io.timeout.millis">120000</Property> </Properties> <Path>/test</Path> </HTTPTargetConnection> </ServiceCallout> - API 프록시에 적용한 변경사항을 저장합니다.
메시지 프로세서에서 I/O 제한 시간 구성
이 섹션에서는 메시지 프로세서에서 I/O 제한 시간을 구성하는 방법을 설명합니다.
I/O 제한 시간은 Edge 구성 방법에 설명된 구문에 따라 토큰을 사용하여 메시지 프로세서 구성요소의 밀리초 단위 I/O 제한 시간 값을 나타내는 HTTPTransport.io.timeout.millis 속성을 통해 구성할 수 있습니다.
메시지 프로세서에서 I/O 제한 시간을 구성하려면 다음 단계를 따르세요.
- 메시지 프로세서 머신에서 편집기로 다음 파일을 엽니다. 아직 없는 경우
만듭니다.
/opt/apigee/customer/application/message-processor.properties
예를 들어
vi를 사용하여 파일을 열려면 다음 명령어를 입력합니다.vi /opt/apigee/customer/application/message-processor.properties
- 다음 형식으로 속성 파일에 줄을 추가하고
TIME_IN_MILLISECONDS의 값을 대체합니다.
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
예를 들어 메시지 프로세서의 I/O 제한 시간을 120초로 변경하려면 다음 줄을 추가합니다.
conf_http_HTTPTransport.io.timeout.millis=120000
- 변경사항을 저장합니다.
- 아래와 같이 속성 파일의 소유자가
apigee사용자인지 확인합니다.chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 아래와 같이 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 메시지 프로세서가 두 개 이상인 경우 모든 메시지 프로세서에서 위의 단계를 반복합니다.
메시지 프로세서에서 I/O 제한 시간 확인
이 섹션에서는 메시지 프로세서에서 I/O 제한 시간이 성공적으로 수정되었는지 확인하는 방법을 설명합니다.
메시지 프로세서에서 I/O 제한 시간을 설정하는 데 토큰 conf_http_HTTPTransport.io.timeout.millis를 사용하더라도 실제 속성
HTTPTransport.io.timeout.millis가 새 값으로 설정되었는지 확인해야 합니다.
- 메시지 프로세서 머신에서
HTTPTransport.io.timeout.millis/opt/apigee/edge-message-processor/conf디렉터리에서 속성을 검색하고 아래와 같이 새 값으로 설정되었는지 확인합니다.grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- 메시지 프로세서에서 새 I/O 제한 시간 값이 성공적으로 설정되면 위의
명령어는
http.properties파일에 새 값을 표시합니다. HTTPTransport.io.timeout.millis속성의 이전 값이 계속 표시되면 메시지 프로세서에서 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 따랐는지 확인합니다. 단계를 누락한 경우 모든 단계를 다시 올바르게 반복합니다.- 그래도 I/O 제한 시간을 수정할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.
I/O 제한 시간을 120초로 구성한 후 위의 명령어에서 가져온 샘플 결과는 다음과 같습니다.
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
위의 예시 출력에서 속성
HTTPTransport.io.timeout.millis이
http.properties에서 새 값 120000으로 설정되었음을 확인합니다. 이는 메시지 프로세서에서 I/O 제한 시간이 120초로 성공적으로 구성되었음을 나타냅니다.