Konfigurowanie limitu czasu wejścia/wyjścia w procesorach

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Ten dokument wyjaśnia, jak skonfigurować limit czasu wejścia/wyjścia dla procesorów wiadomości Apigee Edge.

Limit czasu wejścia/wyjścia w procesorze wiadomości oznacza czas oczekiwania na odpowiedź z serwera backendu lub na przygotowanie gniazda do zapisania żądania do serwera backendu, zanim upłynie limit czasu.

Domyślna wartość limitu czasu wejścia/wyjścia dla procesora wiadomości to 55 seconds. Ten limit czasu oczekiwania dotyczy serwerów backendu skonfigurowanych w konfiguracji docelowego punktu końcowego oraz w zasadach ServiceCallout z serwera proxy interfejsu API.

Limit czasu wejścia/wyjścia operacji wejścia-wyjścia dla procesorów wiadomości możesz odpowiednio zwiększyć lub zmniejszyć z domyślnej wartości 55 seconds. Możesz ją skonfigurować w tych miejscach:

  • Na serwerze proxy interfejsu API
    • Docelowy punkt końcowy
    • Zasady dotyczące objaśnień dotyczących usług
  • W procesorze wiadomości

Te właściwości kontrolują czas oczekiwania wejścia-wyjścia w procesorach wiadomości:

Nazwa właściwości Lokalizacja Opis
io.timeout.millis

Serwer proxy interfejsu API:

  • Docelowy punkt końcowy
  • Zasady dotyczące objaśnień dotyczących usług

W tym czasie procesor wiadomości może wykonywać te czynności:

  • Czeka na odpowiedź z serwera backendu po nawiązywaniu połączenia i wysłaniu żądania do serwera backendu LUB
  • Czeka na gotowość gniazda, aby procesor wiadomości mógł wysłać żądanie do serwera backendu.

Jeśli w tym czasie nie ma odpowiedzi z serwera backendu, następuje przekroczenie limitu czasu oczekiwania procesora wiadomości.

Domyślnie ta właściwość przyjmuje wartość ustawioną dla właściwości HTTPTransport.io.timeout.millis w procesorze wiadomości. Wartością domyślną jest 55 seconds.

Jeśli ta właściwość zostanie zmodyfikowana nową wartością limitu czasu dla określonego serwera proxy interfejsu API, będzie to miało wpływ tylko na ten serwer proxy API.

HTTPTransport.io.timeout.millis procesor komunikatów

W tym czasie procesor wiadomości może wykonywać te czynności:

  • Po nawiązaniu połączenia i wysłaniu żądania do serwera backendu oczekuje na odpowiedź z serwera backendu LUB
  • Czeka na gotowość gniazda, aby procesor wiadomości mógł wysłać żądanie do serwera backendu.

Jeśli w tym czasie nie ma odpowiedzi z serwera backendu, następuje przekroczenie limitu czasu oczekiwania procesora wiadomości.

Ta właściwość jest używana w przypadku wszystkich serwerów proxy interfejsu API działających w tym procesorze wiadomości.

Wartość domyślna tej właściwości to 55 seconds.

Możesz zmodyfikować tę właściwość zgodnie z opisem w sekcji Konfigurowanie limitu czasu wejścia-wyjścia w procesorach wiadomości lub zastąpić tę wartość, ustawiając właściwość io.timeout.millis na poziomie serwera proxy interfejsu API.

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, upewnij się, że rozumiesz następujące zagadnienia:

Konfigurowanie limitu czasu operacji wejścia-wyjścia na serwerze proxy interfejsu API

Limit czasu wejścia-wyjścia można skonfigurować w tych miejscach serwera proxy interfejsu API:

  • Docelowy punkt końcowy
  • Zasady dotyczące objaśnień dotyczących usług

Konfigurowanie limitu czasu wejścia/wyjścia w docelowym punkcie końcowym serwera proxy interfejsu API

Z tej sekcji dowiesz się, jak skonfigurować limit czasu wejścia-wyjścia w docelowym punkcie końcowym serwera proxy interfejsu API. Limit czasu wejścia/wyjścia można skonfigurować za pomocą właściwości io.timeout.millis, która reprezentuje wartość limitu czasu wejścia/wyjścia w milisekundach.

  1. W interfejsie użytkownika Edge wybierz konkretny serwer proxy interfejsu API, w którym chcesz skonfigurować nową wartość limitu czasu wejścia/wyjścia.
  2. Wybierz konkretny docelowy punkt końcowy, który chcesz zmienić.
  3. Dodaj właściwość io.timeout.millis z odpowiednią wartością w elemencie <HTTPTargetConnection> w konfiguracji TargetEndpoint.
  4. Aby na przykład zmienić limit czasu wejścia/wyjścia na 120 sekund, dodaj ten blok kodu:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Właściwość io.timeout.millis jest wyrażona w milisekundach, dlatego wartość 120 sekund wynosi 120000.

    Z tych przykładów dowiesz się, jak ustawić limit czasu wejścia-wyjścia w konfiguracji docelowego punktu końcowego serwera proxy interfejsu API:

    Przykładowa konfiguracja docelowego punktu końcowego z użyciem adresu URL serwera backendu

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    Przykładowa konfiguracja docelowego punktu końcowego z użyciem serwera docelowego

    <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. Zapisz zmiany wprowadzone do serwera proxy interfejsu API.

Konfigurowanie limitu czasu wejścia-wyjścia w zasadzie ServiceWykluczenie serwera proxy interfejsu API

Z tej sekcji dowiesz się, jak skonfigurować limit czasu wejścia/wyjścia w zasadzie ServiceCallout na serwerze proxy interfejsu API. Limit czasu wejścia-wyjścia można skonfigurować za pomocą elementu <Timeout> lub właściwości io.timeout.millis. Zarówno element <Timeout>, jak i właściwości io.timeout.millis podają wartości limitu czasu wejścia-wyjścia w milisekundach.

Limit czasu wejścia-wyjścia możesz skonfigurować w zasadzie wywołania usługi, korzystając z jednej z tych metod:

  • Element <Timeout>.
  • io.timeout.millis.

Element limitu czasu

Aby skonfigurować limit czasu wejścia-wyjścia w zasadzie ServiceCallout przy użyciu elementu <Timeout>, wykonaj te czynności:

  1. W interfejsie użytkownika Edge wybierz konkretny serwer proxy interfejsu API, w którym chcesz skonfigurować nową wartość limitu czasu wejścia/wyjścia dla zasady ServiceCallout.
  2. Wybierz konkretną zasadę objaśnienia usługi, którą chcesz zmienić.
  3. Dodaj element <Timeout> z odpowiednią wartością w konfiguracji <ServiceCallout>.

    Aby na przykład zmienić limit czasu wejścia-wyjścia na 120 sekund, dodaj ten wiersz kodu:

        <Timeout>120000</Timeout>
    

    Ponieważ element <Timeout> jest wyrażony w milisekundach, wartość dla 120 sekund wynosi 120000.

    Poniższy przykład pokazuje, jak skonfigurować limit czasu wejścia-wyjścia w zasadzie ServiceCallout przy użyciu elementu <Timeout>:

    Przykładowa konfiguracja zasady ServiceCallout z użyciem adresu URL serwera backendu

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Zapisz zmiany wprowadzone do serwera proxy interfejsu API.

Właściwość io.timeout.millis

Aby skonfigurować limit czasu wejścia-wyjścia w zasadzie ServiceCallout za pomocą właściwości io.timeout.millis, wykonaj te czynności:

  1. W interfejsie użytkownika Edge wybierz konkretny serwer proxy interfejsu API, w którym chcesz skonfigurować nową wartość limitu czasu wejścia/wyjścia dla zasady ServiceCallout.
  2. Wybierz konkretną zasadę objaśnienia usługi, którą chcesz zmienić.
  3. Dodaj właściwość io.timeout.millis z odpowiednią wartością w elemencie <HTTPTargetConnection> w konfiguracji TargetEndpoint.

    Aby na przykład zmienić limit czasu wejścia-wyjścia na 120 sekund, dodaj ten blok kodu:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Właściwość io.timeout.millis jest wyrażona w milisekundach, dlatego wartość 120 sekund wynosi 120000.

    Z tych przykładów dowiesz się, jak ustawić limit czasu wejścia-wyjścia w konfiguracji docelowego punktu końcowego serwera proxy interfejsu API:

    Przykładowa konfiguracja zasady ServiceCallout z użyciem adresu URL serwera backendu

    <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>
    

    Przykładowa konfiguracja zasady ServiceCallout z użyciem serwera docelowego

    <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. Zapisz zmiany wprowadzone do serwera proxy interfejsu API.

Konfigurowanie czasu oczekiwania operacji wejścia-wyjścia w procesorach wiadomości

W tej sekcji wyjaśniono, jak skonfigurować limit czasu wejścia/wyjścia w procesorach wiadomości. Limit czasu wejścia/wyjścia można skonfigurować za pomocą właściwości HTTPTransport.io.timeout.millis, która reprezentuje wyrażoną w milisekundach wartość limitu czasu wejścia/wyjścia w komponencie procesora wiadomości, przy użyciu tokena zgodnie ze składnią opisaną w sekcji Jak skonfigurować Edge.

Aby skonfigurować limit czasu wejścia-wyjścia w procesorach wiadomości, wykonaj te czynności:

  1. Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli jeszcze nie istnieje, utwórz go.
    /opt/apigee/customer/application/message-processor.properties
    

    Aby na przykład otworzyć plik za pomocą vi, wpisz to polecenie:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Dodaj do pliku właściwości wiersz w tym formacie, zastępując wartość TIME_IN_MILLISECONDS wartością:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Aby na przykład zmienić limit czasu wejścia-wyjścia w procesorze wiadomości na 120 sekund, dodaj ten wiersz:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Zapisz zmiany.
  4. Upewnij się, że plik właściwości należy do użytkownika apigee, jak pokazano poniżej:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Jeśli masz więcej niż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.

Weryfikowanie limitu czasu operacji wejścia-wyjścia w procesorach wiadomości

Ta sekcja wyjaśnia, jak sprawdzić, czy limit czasu wejścia-wyjścia został zmieniony w procesorach wiadomości.

Mimo że do ustawiania czasu oczekiwania wejścia-wyjścia w procesorze wiadomości używasz tokena conf_http_HTTPTransport.io.timeout.millis, musisz sprawdzić, czy właściwość HTTPTransport.io.timeout.millis ma ustawioną nową wartość.

  1. Na komputerze procesora wiadomości wyszukaj właściwość HTTPTransport.io.timeout.millis w katalogu /opt/apigee/edge-message-processor/conf i sprawdź, czy została ona ustawiona z nową wartością, jak pokazano poniżej:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Jeśli nowa wartość limitu czasu wejścia-wyjścia zostanie ustawiona w procesorze wiadomości, powyższe polecenie wyświetli nową wartość w pliku http.properties.
  3. Przykładowy wynik powyższego polecenia po skonfigurowaniu limitu czasu wejścia-wyjścia na 120 sekund będzie wyglądał tak:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    W powyższych przykładowych danych wyjściowych zwróć uwagę, że właściwość HTTPTransport.io.timeout.millis została ustawiona w http.properties z nową wartością 120000. Wskazuje to, że limit czasu wejścia-wyjścia został skonfigurowany na 120 sekundach w procesorze wiadomości.

  4. Jeśli nadal widzisz starą wartość właściwości HTTPTransport.io.timeout.millis, sprawdź, czy zostały wykonane wszystkie czynności opisane w artykule Konfigurowanie limitu czasu wejścia/wyjścia w procesorach wiadomości. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie.
  5. Jeśli nadal nie możesz zmienić czasu oczekiwania na operacje wejścia-wyjścia, skontaktuj się z zespołem pomocy Apigee Edge.

Co dalej?

Dowiedz się więcej o konfigurowaniu limitu czasu wejścia/wyjścia w routerach