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

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Z tego dokumentu dowiesz się, jak skonfigurować czas oczekiwania na wejście/wyjście w procesorach komunikatów Apigee Edge.

Czas oczekiwania na wejście/wyjście w procesorze komunikatów to czas, przez który procesor komunikatów czeka na otrzymanie odpowiedzi z serwera backendu lub na gotowość gniazda do zapisania żądania na serwerze backendu, zanim upłynie czas oczekiwania.

Domyślna wartość czasu oczekiwania na wejście/wyjście w procesorze komunikatów to 55 seconds. Ten czas oczekiwania dotyczy serwerów backendu skonfigurowanych w konfiguracji docelowego punktu końcowego i w zasadzie ServiceCallout proxy interfejsu API.

Czas oczekiwania na wejście/wyjście w procesorach komunikatów można zwiększyć lub zmniejszyć w stosunku do wartości domyślnej 55 seconds w zależności od potrzeb. Można go skonfigurować w tych miejscach:

  • W proxy interfejsu API
    • Docelowy punkt końcowy
    • Zasada ServiceCallout
  • W procesorze komunikatów

Te właściwości kontrolują czas oczekiwania na wejście/wyjście w procesorach komunikatów:

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

Proxy interfejsu API:

  • Docelowy punkt końcowy
  • Zasada ServiceCallout

Jest to maksymalny czas, przez który procesor komunikatów wykonuje te czynności:

  • Czeka na otrzymanie odpowiedzi z serwera backendu po nawiązaniu połączenia i wysłaniu żądania do serwera backendu LUB
  • Czeka na gotowość gniazda, aby procesor komunikatów mógł wysłać żądanie do serwera backendu.

Jeśli w tym czasie oczekiwania nie nadejdzie odpowiedź z serwera backendu, to procesor komunikatów przekroczy limit czasu.

Domyślnie ta właściwość przyjmuje wartość ustawioną dla właściwości HTTPTransport.io.timeout.millis w procesorze komunikatów. Wartość domyślna to 55 seconds.

Jeśli ta właściwość zostanie zmodyfikowana i otrzyma nową wartość czasu oczekiwania dla konkretnego proxy interfejsu API, wpłynie to tylko na to proxy.

HTTPTransport.io.timeout.millis Procesor komunikatów

Jest to maksymalny czas, przez który procesor komunikatów wykonuje te czynności:

  • Czeka na otrzymanie odpowiedzi z serwera backendu po nawiązaniu połączenia i wysłaniu żądania do serwera backendu LUB
  • Czeka na gotowość gniazda, aby procesor komunikatów mógł wysłać żądanie do serwera backendu.

Jeśli w tym czasie oczekiwania nie nadejdzie odpowiedź z serwera backendu, to procesor komunikatów przekroczy limit czasu.

Ta właściwość jest używana w przypadku wszystkich proxy interfejsów API działających w tym procesorze komunikatów.

Domyślna wartość tej właściwości to 55 seconds.

Możesz zmodyfikować tę właściwość zgodnie z opisem w sekcji Konfigurowanie czasu oczekiwania na wejście/wyjście w procesorach komunikatów lub zastąpić tę wartość, ustawiając właściwość io.timeout.millis na poziomie proxy interfejsu API.

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, upewnij się, że rozumiesz te tematy:

Konfigurowanie czasu oczekiwania na wejście/wyjście w proxy interfejsu API

Czas oczekiwania na wejście/wyjście można skonfigurować w tych miejscach proxy interfejsu API:

  • Docelowy punkt końcowy
  • Zasada ServiceCallout

Konfigurowanie czasu oczekiwania na wejście/wyjście w docelowym punkcie końcowym proxy interfejsu API

W tej sekcji dowiesz się, jak skonfigurować czas oczekiwania na wejście/wyjście w docelowym punkcie końcowym proxy interfejsu API. Czas oczekiwania na wejście/wyjście można skonfigurować za pomocą właściwości io.timeout.millis, która reprezentuje wartość czasu oczekiwania na wejście/wyjście w milisekundach.

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

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

    Właściwość io.timeout.millis jest podawana w milisekundach, więc wartość 120 sekund to 120000.

    Poniższe przykłady pokazują, jak skonfigurować czas oczekiwania na wejście/wyjście w konfiguracji docelowego punktu końcowego konfiguracji 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 w proxy interfejsu API.

Konfigurowanie czasu oczekiwania na wejście/wyjście w zasadzie ServiceCallout proxy interfejsu API

W tej sekcji dowiesz się, jak skonfigurować czas oczekiwania na wejście/wyjście w zasadzie ServiceCallout proxy interfejsu API. Czas oczekiwania na wejście/wyjście można skonfigurować za pomocą elementu <Timeout> lub właściwości io.timeout.millis. Zarówno element <Timeout>, jak i właściwość io.timeout.millis reprezentują wartości czasu oczekiwania na wejście/wyjście w milisekundach.

Czas oczekiwania na wejście/wyjście w zasadzie ServiceCallout możesz skonfigurować za pomocą jednej z tych metod:

  • Element <Timeout>.
  • Właściwość io.timeout.millis.

Element Timeout

Aby skonfigurować czas oczekiwania na wejście/wyjście w zasadzie ServiceCallout za pomocą elementu <Timeout>:

  1. W interfejsie Edge wybierz konkretne proxy interfejsu API, w którym chcesz skonfigurować nową wartość czasu oczekiwania na wejście/wyjście w zasadzie ServiceCallout.
  2. Wybierz konkretną zasadę ServiceCallout, którą chcesz zmodyfikować.
  3. Dodaj element <Timeout> z odpowiednią wartością w konfiguracji <ServiceCallout>.

    Aby na przykład zmienić czas oczekiwania na wejście/wyjście na 120 sekund, dodaj ten wiersz kodu:

        <Timeout>120000</Timeout>

    Element <Timeout> jest podawany w milisekundach, więc wartość 120 sekund to 120000.

    Ten przykład pokazuje, jak skonfigurować czas oczekiwania na wejście/wyjście w zasadzie ServiceCallout za pomocą 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 w proxy interfejsu API.

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

Aby skonfigurować czas oczekiwania na wejście/wyjście w zasadzie ServiceCallout za pomocą właściwości io.timeout.millis:

  1. W interfejsie Edge wybierz konkretne proxy interfejsu API, w którym chcesz skonfigurować nową wartość czasu oczekiwania na wejście/wyjście w zasadzie ServiceCallout.
  2. Wybierz konkretną zasadę ServiceCallout, którą chcesz zmodyfikować.
  3. Dodaj właściwość io.timeout.millis z odpowiednią wartością w elemencie <HTTPTargetConnection> w konfiguracji TargetEndpoint.

    Aby na przykład zmienić czas oczekiwania na wejście/wyjście na 120 sekund, dodaj ten blok kodu:

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

    Właściwość io.timeout.millis jest podawana w milisekundach, więc wartość 120 sekund to 120000.

    Poniższe przykłady pokazują, jak skonfigurować czas oczekiwania na wejście/wyjście w konfiguracji docelowego punktu końcowego konfiguracji 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 w proxy interfejsu API.

Konfigurowanie czasu oczekiwania na wejście/wyjście w procesorach komunikatów

W tej sekcji dowiesz się, jak skonfigurować czas oczekiwania na wejście/wyjście w procesorach komunikatów. Czas oczekiwania na wejście/wyjście można skonfigurować za pomocą właściwości HTTPTransport.io.timeout.millis, która reprezentuje wartość czasu oczekiwania na wejście/wyjście w milisekundach w komponencie procesora komunikatów, używając tokena zgodnie ze składnią opisaną w artykule Jak skonfigurować Edge.

Aby skonfigurować czas oczekiwania na wejście/wyjście w procesorach komunikatów:

  1. Na maszynie procesora komunikatów otwórz ten plik w edytorze. Jeśli plik 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ść dla TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

    Aby na przykład zmienić czas oczekiwania na wejście/wyjście w procesorze komunikatów na 120 sekund, dodaj ten wiersz:

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. Zapisz zmiany.
  4. Upewnij się, że właścicielem pliku właściwości jest użytkownik apigee, jak pokazano poniżej:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Jeśli masz więcej niż 1 procesor komunikatów, powtórz powyższe czynności na wszystkich procesorach komunikatów.

Sprawdzanie czasu oczekiwania na wejście/wyjście w procesorach komunikatów

W tej sekcji dowiesz się, jak sprawdzić, czy czas oczekiwania na wejście/wyjście został prawidłowo zmodyfikowany w procesorach komunikatów.

Mimo że do ustawienia czasu oczekiwania na wejście/wyjście w procesorze komunikatów używasz tokena conf_http_HTTPTransport.io.timeout.millis, musisz sprawdzić, czy rzeczywista właściwość HTTPTransport.io.timeout.millis została ustawiona na nową wartość.

  1. Na maszynie procesora komunikatów wyszukaj właściwość HTTPTransport.io.timeout.millis w katalogu /opt/apigee/edge-message-processor/conf i sprawdź, czy została ustawiona na nową wartość, jak pokazano poniżej:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. Jeśli nowa wartość czasu oczekiwania na wejście/wyjście zostanie prawidłowo ustawiona w procesorze komunikatów, powyższe polecenie wyświetli nową wartość w pliku http.properties.
  3. Przykładowy wynik powyższego polecenia po skonfigurowaniu czasu oczekiwania na wejście/wyjście na 120 sekund:

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

    W powyższym przykładzie zwróć uwagę, że właściwość HTTPTransport.io.timeout.millis została ustawiona na nową wartość 120000 w http.properties. Oznacza to, że czas oczekiwania na wejście/wyjście został prawidłowo skonfigurowany na 120 sekund w procesorze komunikatów.

  4. Jeśli nadal widzisz starą wartość właściwości HTTPTransport.io.timeout.millis, sprawdź, czy prawidłowo wykonano wszystkie czynności opisane w Konfigurowanie czasu oczekiwania na wejście/wyjście w procesorach komunikatów. Jeśli pominiesz jakiś krok, powtórz wszystkie czynności.
  5. Jeśli nadal nie możesz zmodyfikować czasu oczekiwania na wejście/wyjście, skontaktuj się z zespołem pomocy Apigee Edge.

Co dalej?

Więcej informacji o konfigurowaniu czasu oczekiwania na wejście/wyjście w routerach