현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동 정보
이 문서에서는 Apigee Edge 메시지 프로세서의 I/O 제한 시간을 구성하는 방법을 설명합니다.
메시지 프로세서의 I/O 제한시간은 메시지 프로세서가 백엔드 서버로부터 응답을 받기 위해 또는 소켓이 백엔드 서버에 요청을 쓸 준비를 마치기 전에 대기하는 시간을 나타냅니다.
메시지 프로세서 I/O 시간 제한 기본값은 55 seconds
입니다. 이 제한 시간은 대상 엔드포인트 구성과 API 프록시의 ServiceCall 정책에 구성된 백엔드 서버에 적용됩니다.
메시지 프로세서의 I/O 제한 시간은 필요에 따라 기본값 55 seconds
에서 늘리거나 줄일 수 있습니다. 다음 위치에서 구성할 수 있습니다.
- API 프록시
- 대상 엔드포인트
- ServiceCallout 정책
- 메시지 프로세서에서
다음 속성은 메시지 프로세서의 I/O 제한 시간을 제어합니다.
속성 이름 | 위치 | 설명 |
---|---|---|
io.timeout.millis
|
API 프록시:
|
이 시간은 메시지 프로세서가 다음을 수행하는 최대 시간입니다.
이 제한 시간 내에 백엔드 서버 응답이 없으면 메시지 프로세서의 시간이 초과됩니다.
기본적으로 이 속성은 메시지 프로세서의 이 속성이 특정 API 프록시의 새 제한 시간 값을 사용하여 수정되면 해당 API 프록시만 영향을 받습니다. |
HTTPTransport.io.timeout.millis
|
메시지 프로세서 |
이 시간은 메시지 프로세서가 다음을 수행하는 최대 시간입니다.
이 제한 시간 내에 백엔드 서버 응답이 없으면 메시지 프로세서의 시간이 초과됩니다. 이 속성은 이 메시지 프로세서에서 실행되는 모든 API 프록시에 사용됩니다.
이 속성의 기본값은
메시지 프로세서의 I/O 제한 시간 구성에 설명된 대로 이 속성을 수정하거나, API 프록시 수준에서 |
시작하기 전에
이 문서의 단계를 수행하기 전에 다음 주제를 이해해야 합니다.
- I/O 제한 시간에 관해 잘 모른다면
TargetEndpoint 전송 속성 사양의
io.timeout.millis
속성 설명을 참조하세요. - Private Cloud용 Edge 속성을 구성하는 데 익숙하지 않다면 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 프록시의 Service콜아웃 정책에서 I/O 제한 시간 구성
이 섹션에서는 API 프록시의 ServiceCall 정책에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 <Timeout>
요소 또는 io.timeout.millis
속성을 통해 구성할 수 있습니다. <Timeout>
요소와 io.timeout.millis
속성은 모두 I/O 시간 제한 값을 밀리초 단위로 나타냅니다.
다음 방법 중 하나를 사용하여 ServiceCall 정책에서 I/O 제한 시간을 구성할 수 있습니다.
<Timeout>
요소.io.timeout.millis
속성과 함께 사용할 수 있습니다.
제한 시간 요소
<Timeout>
요소를 사용하여 ServiceCall 정책에서 I/O 제한 시간을 구성하려면 다음을 수행합니다.
- Edge UI에서 ServiceCall 정책의 새 I/O 시간 제한 값을 구성할 특정 API 프록시를 선택합니다.
- 수정할 특정 Service콜 정책을 선택합니다.
<ServiceCallout>
구성 아래에 적절한 값과 함께<Timeout>
요소를 추가합니다.예를 들어 I/O 제한 시간을 120초로 변경하려면 다음 코드 줄을 추가합니다.
<Timeout>120000</Timeout>
<Timeout>
요소는 밀리초 단위이므로 120초 값은120000
입니다.다음 예시에서는
<Timeout>
요소를 사용하여 ServiceCall 정책에서 I/O 제한 시간을 구성하는 방법을 보여줍니다.백엔드 서버용 URL을 사용한 ServiceCall 정책 구성 예
<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 속성
io.timeout.millis
속성을 사용하여 ServiceCall 정책에서 I/O 제한 시간을 구성하려면 다음을 수행합니다.
- Edge UI에서 ServiceCall 정책의 새 I/O 시간 제한 값을 구성할 특정 API 프록시를 선택합니다.
- 수정할 특정 Service콜 정책을 선택합니다.
- 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을 사용한 ServiceCall 정책 구성 예
<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>
대상 서버를 사용한 ServiceCall 정책 구성 예
<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 제한 시간이 수정되었는지 확인하는 방법을 설명합니다.
conf_http_HTTPTransport.io.timeout.millis
토큰을 사용하여 메시지 프로세서에 I/O 제한 시간을 설정하더라도 실제 속성 HTTPTransport.io.timeout.millis
가 새 값으로 설정되었는지 확인해야 합니다.
- 메시지 프로세서 시스템의
/opt/apigee/edge-message-processor/conf
디렉터리에서HTTPTransport.io.timeout.millis
속성을 검색하여 아래와 같이 새 값으로 설정되어 있는지 확인합니다.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초로 구성되었음을 나타냅니다.
다음 단계
라우터의 I/O 제한 시간 구성 알아보기