메시지 프로세서에서 I/O 제한 시간 구성

현재 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 프록시:

  • 타겟 엔드포인트
  • 서비스 콜아웃 정책

이 시간은 메시지 프로세서가 다음을 수행하는 최대 시간입니다.

  • 연결을 설정하고 백엔드 서버로 요청을 전송한 후 백엔드 서버의 응답을 수신할 때까지 대기합니다.
  • 메시지 프로세서가 요청을 백엔드 서버로 보낼 소켓이 준비될 때까지 기다립니다.

이 제한 시간 내에 백엔드 서버 응답이 없으면 메시지 프로세서의 시간이 초과됩니다.

기본적으로 이 속성은 메시지 프로세서의 HTTPTransport.io.timeout.millis 속성에 설정된 값을 사용합니다. 기본값은 55 seconds입니다.

이 속성이 특정 API 프록시의 새 제한 시간 값을 사용하여 수정되면 해당 API 프록시만 영향을 받습니다.

HTTPTransport.io.timeout.millis 메시지 프로세서

이 시간은 메시지 프로세서가 다음을 수행하는 최대 시간입니다.

  • 연결을 설정하고 백엔드 서버로 요청을 전송한 후 백엔드 서버의 응답을 수신할 때까지 대기합니다.
  • 메시지 프로세서가 요청을 백엔드 서버로 보낼 소켓이 준비될 때까지 기다립니다.

이 제한 시간 내에 백엔드 서버 응답이 없으면 메시지 프로세서의 시간이 초과됩니다.

이 속성은 이 메시지 프로세서에서 실행되는 모든 API 프록시에 사용됩니다.

이 속성의 기본값은 55 seconds입니다.

메시지 프로세서의 I/O 제한 시간 구성에 설명된 대로 이 속성을 수정하거나, API 프록시 수준에서 io.timeout.millis 속성을 설정하여 이 값을 덮어쓸 수 있습니다.

시작하기 전에

이 문서의 단계를 수행하기 전에 다음 주제를 이해해야 합니다.

API 프록시에서 I/O 제한 시간 구성

I/O 제한 시간은 다음 API 프록시 위치에서 구성할 수 있습니다.

  • 대상 엔드포인트
  • ServiceCallout 정책

API 프록시의 대상 엔드포인트에서 I/O 제한 시간 구성

이 섹션에서는 API 프록시의 대상 엔드포인트에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 밀리초 단위로 I/O 제한 시간 값을 나타내는 io.timeout.millis 속성을 통해 구성할 수 있습니다.

  1. Edge UI에서 새 I/O 시간 제한 값을 구성할 특정 API 프록시를 선택합니다.
  2. 수정할 특정 대상 엔드포인트를 선택합니다.
  3. TargetEndpoint 구성의 <HTTPTargetConnection> 요소 아래에 적절한 값과 함께 io.timeout.millis 속성을 추가합니다.
  4. 예를 들어 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>
    
  5. API 프록시에 대한 변경사항을 저장합니다.

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 제한 시간을 구성하려면 다음을 수행합니다.

  1. Edge UI에서 ServiceCall 정책의 새 I/O 시간 제한 값을 구성할 특정 API 프록시를 선택합니다.
  2. 수정할 특정 Service콜 정책을 선택합니다.
  3. <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>
    
  4. API 프록시에 대한 변경사항을 저장합니다.

io.timeout.millis 속성

io.timeout.millis 속성을 사용하여 ServiceCall 정책에서 I/O 제한 시간을 구성하려면 다음을 수행합니다.

  1. Edge UI에서 ServiceCall 정책의 새 I/O 시간 제한 값을 구성할 특정 API 프록시를 선택합니다.
  2. 수정할 특정 Service콜 정책을 선택합니다.
  3. 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>
    
  4. API 프록시에 대한 변경사항을 저장합니다.

메시지 프로세서에서 I/O 제한 시간 구성

이 섹션에서는 메시지 프로세서에서 I/O 제한 시간을 구성하는 방법을 설명합니다. I/O 제한 시간은 Edge 구성 방법에 설명된 구문에 따라 토큰을 사용하여 메시지 프로세서 구성요소의 I/O 시간 제한 값을 밀리초 단위로 나타내는 HTTPTransport.io.timeout.millis 속성을 통해 구성할 수 있습니다.

메시지 프로세서에서 I/O 제한 시간을 구성하려면 다음 단계를 따르세요.

  1. 메시지 프로세서 머신에서 편집기에서 다음 파일을 엽니다. 아직 없으면 새로 만듭니다.
    /opt/apigee/customer/application/message-processor.properties
    

    예를 들어 vi를 사용하여 파일을 열려면 다음 명령어를 입력합니다.

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 속성 파일에 다음 형식의 줄을 추가하고 TIME_IN_MILLISECONDS을 값으로 바꿉니다.
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    예를 들어 메시지 프로세서의 I/O 제한 시간을 120초로 변경하려면 다음 줄을 추가합니다.

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. 변경사항을 저장합니다.
  4. 아래와 같이 속성 파일을 apigee 사용자가 소유하고 있는지 확인합니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 아래와 같이 메시지 프로세서를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 메시지 프로세서가 두 개 이상 있으면 모든 메시지 프로세서에서 위 단계를 반복합니다.

메시지 프로세서의 I/O 제한 시간 확인

이 섹션에서는 메시지 프로세서에서 I/O 제한 시간이 수정되었는지 확인하는 방법을 설명합니다.

conf_http_HTTPTransport.io.timeout.millis 토큰을 사용하여 메시지 프로세서에 I/O 제한 시간을 설정하더라도 실제 속성 HTTPTransport.io.timeout.millis가 새 값으로 설정되었는지 확인해야 합니다.

  1. 메시지 프로세서 시스템의 /opt/apigee/edge-message-processor/conf 디렉터리에서 HTTPTransport.io.timeout.millis 속성을 검색하여 아래와 같이 새 값으로 설정되어 있는지 확인합니다.
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. 새 I/O 시간 제한 값이 메시지 프로세서에 설정되면 위 명령어는 http.properties 파일에 새 값을 표시합니다.
  3. 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초로 구성되었음을 나타냅니다.

  4. HTTPTransport.io.timeout.millis 속성의 이전 값이 계속 표시되면 메시지 프로세서의 I/O 제한 시간 구성에 설명된 모든 단계를 올바르게 수행했는지 확인합니다. 누락된 단계가 있으면 모든 단계를 다시 올바르게 반복합니다.
  5. 그래도 I/O 제한 시간을 수정할 수 없으면 Apigee Edge 지원팀에 문의하세요.

다음 단계

라우터의 I/O 제한 시간 구성 알아보기