Configurazione del timeout I/O sui processori di messaggi

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Questo documento spiega come configurare il timeout I/O per i processori di messaggi di Apigee Edge.

Il timeout I/O sul processore di messaggi rappresenta il tempo di attesa del processore di messaggi prima che scada il timeout per ricevere una risposta dal server di backend o che il socket sia pronto per scrivere una richiesta al server di backend.

Il valore predefinito del timeout I/O del processore di messaggi è 55 seconds. Questo periodo di timeout è applicabile ai server di backend configurati nella configurazione dell'endpoint di destinazione e nella policy ServiceCallout del proxy API.

Il timeout I/O per i processori di messaggi può essere aumentato o diminuito rispetto al valore predefinito di 55 seconds in base alle tue esigenze. Può essere configurato nei seguenti punti:

  • Nel proxy API
    • Endpoint di destinazione
    • Policy ServiceCallout
  • Sul processore di messaggi

Le seguenti proprietà controllano il timeout I/O sui processori di messaggi:

Nome proprietà Località Descrizione
io.timeout.millis

Proxy API:

  • Endpoint di destinazione
  • Policy ServiceCallout

Questo è il tempo massimo per cui il processore di messaggi:

  • Attende di ricevere una risposta dal server di backend, dopo aver stabilito la connessione e inviato la richiesta al server di backend OPPURE
  • Attende che il socket sia pronto per l'invio della richiesta al server di backend da parte del processore di messaggi.

Se non riceve una risposta dal server di backend entro questo periodo di timeout, il processore di messaggi va in timeout.

Per impostazione predefinita, questa proprietà assume il valore impostato per la HTTPTransport.io.timeout.millis proprietà sul processore di messaggi. Il valore predefinito è 55 seconds.

Se questa proprietà viene modificata con un nuovo valore di timeout per un proxy API specifico, viene interessato solo quel proxy API.

HTTPTransport.io.timeout.millis Processore di messaggi

Questo è il tempo massimo per cui il processore di messaggi:

  • Attende di ricevere una risposta dal server di backend, dopo aver stabilito la connessione e inviato la richiesta al server di backend OPPURE
  • Attende che il socket sia pronto per l'invio della richiesta al server di backend da parte del processore di messaggi.

Se non riceve una risposta dal server di backend entro questo periodo di timeout, il processore di messaggi va in timeout.

Questa proprietà viene utilizzata per tutti i proxy API in esecuzione su questo processore di messaggi.

Il valore predefinito di questa proprietà è 55 seconds.

Puoi modificare questa proprietà come spiegato in Configurare il timeout I/O sui processori di messaggi, oppure puoi sovrascrivere questo valore impostando la proprietà io.timeout.millis a livello di proxy API.

Prima di iniziare

Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:

Configurare il timeout I/O nel proxy API

Il timeout I/O può essere configurato nei seguenti punti del proxy API:

  • Endpoint di destinazione
  • Policy ServiceCallout

Configurare il timeout I/O nell'endpoint di destinazione del proxy API

Questa sezione spiega come configurare il timeout I/O nell'endpoint di destinazione del proxy API. Il timeout I/O può essere configurato tramite la proprietà io.timeout.millis, che rappresenta il valore del timeout I/O in millisecondi.

  1. Nell'interfaccia utente di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O.
  2. Seleziona l'endpoint di destinazione specifico che vuoi modificare.
  3. Aggiungi la proprietà io.timeout.millis con un valore appropriato sotto l'elemento <HTTPTargetConnection> nella configurazione TargetEndpoint.
  4. Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi il seguente blocco di codice:

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

    Poiché la proprietà io.timeout.millis è in millisecondi, il valore per 120 secondi è 120000.

    Gli esempi seguenti mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:

    Esempio di configurazione dell'endpoint di destinazione che utilizza l'URL per il server di backend

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

    Esempio di configurazione dell'endpoint di destinazione che utilizza il server di destinazione

    <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. Salva le modifiche apportate al proxy API.

Configurare il timeout I/O nella policy ServiceCallout del proxy API

Questa sezione spiega come configurare il timeout I/O nella policy ServiceCallout del proxy API. Il timeout I/O può essere configurato tramite l'elemento <Timeout> o la proprietà io.timeout.millis. Sia l'elemento <Timeout> sia la proprietà io.timeout.millis rappresentano i valori del timeout I/O in millisecondi.

Puoi configurare il timeout I/O nella policy ServiceCallout utilizzando uno dei seguenti metodi:

  • <Timeout> elemento.
  • Proprietà io.timeout.millis.

Elemento Timeout

Per configurare il timeout I/O nella policy ServiceCallout utilizzando l'elemento <Timeout>, procedi come segue:

  1. Nell'interfaccia utente di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per la policy ServiceCallout.
  2. Seleziona la policy ServiceCallout specifica che vuoi modificare.
  3. Aggiungi l'elemento <Timeout> con un valore appropriato nella <ServiceCallout> configurazione.

    Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi la seguente riga di codice:

        <Timeout>120000</Timeout>

    Poiché l'elemento <Timeout> è in millisecondi, il valore per 120 secondi è 120000.

    L'esempio seguente mostra come configurare il timeout I/O nella policy ServiceCallout utilizzando l'elemento <Timeout>:

    Esempio di configurazione della policy ServiceCallout che utilizza l'URL per il server di backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. Salva le modifiche apportate al proxy API.

Proprietà io.timeout.millis

Per configurare il timeout I/O nella policy ServiceCallout utilizzando la io.timeout.millis proprietà, procedi come segue:

  1. Nell'interfaccia utente di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per la policy ServiceCallout.
  2. Seleziona la policy ServiceCallout specifica che vuoi modificare.
  3. Aggiungi la proprietà io.timeout.millis con un valore appropriato sotto l' <HTTPTargetConnection> elemento nella configurazione TargetEndpoint.

    Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi il seguente blocco di codice:

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

    Poiché la proprietà io.timeout.millis è in millisecondi, il valore per 120 secondi è 120000.

    Gli esempi seguenti mostrano come configurare il timeout I/O nella configurazione dell'endpoint di destinazione del proxy API:

    Esempio di configurazione della policy ServiceCallout che utilizza l'URL per il server di backend

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

    Esempio di configurazione della policy ServiceCallout che utilizza il server di destinazione

    <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. Salva le modifiche apportate al proxy API.

Configurare il timeout I/O sui processori di messaggi

Questa sezione spiega come configurare il timeout I/O sui processori di messaggi. Il timeout I/O può essere configurato tramite la proprietà HTTPTransport.io.timeout.millis, che rappresenta il valore del timeout I/O in millisecondi sul componente del processore di messaggi, utilizzando il token in base alla sintassi descritta in How to configure Edge.

Per configurare il timeout I/O sui processori di messaggi:

  1. Sulla macchina del processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.
    /opt/apigee/customer/application/message-processor.properties

    Ad esempio, per aprire il file utilizzando vi, inserisci il seguente comando:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Aggiungi una riga nel seguente formato al file delle proprietà, sostituendo un valore per TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

    Ad esempio, per modificare il timeout I/O sul processore di messaggi a 120 secondi, aggiungi la seguente riga:

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. Salva le modifiche.
  4. Assicurati che il file delle proprietà sia di proprietà dell'utente apigee, come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Riavvia il processore di messaggi come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Se hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

Verificare il timeout I/O sui processori di messaggi

Questa sezione spiega come verificare che il timeout I/O sia stato modificato correttamente sui Processori di messaggi.

Anche se utilizzi il token conf_http_HTTPTransport.io.timeout.millis per impostare il timeout I/O sul processore di messaggi, devi verificare se la proprietà effettiva HTTPTransport.io.timeout.millis è stata impostata con il nuovo valore.

  1. Sulla macchina del processore di messaggi, cerca la proprietà HTTPTransport.io.timeout.millis nella directory /opt/apigee/edge-message-processor/conf e verifica se è stata impostata con il nuovo valore, come mostrato di seguito:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. Se il nuovo valore di timeout I/O viene impostato correttamente sul processore di messaggi, il comando precedente mostra il nuovo valore nel file http.properties.
  3. Il risultato di esempio del comando precedente dopo aver configurato il timeout I/O a 120 secondi è il seguente:

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

    Nell'output di esempio riportato sopra, nota che la proprietà HTTPTransport.io.timeout.millis è stata impostata con il nuovo valore 120000 in http.properties. Ciò indica che il timeout I/O è configurato correttamente a 120 secondi sul processore di messaggi.

  4. Se continui a visualizzare il vecchio valore per la proprietà HTTPTransport.io.timeout.millis, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare il timeout I/O sui processori di messaggi. Se hai saltato un passaggio, ripeti correttamente tutti i passaggi.
  5. Se non riesci ancora a modificare il timeout I/O, contatta l'assistenza di Apigee Edge.

Passaggi successivi

Scopri di più su Configurare il timeout I/O sui router