Configurazione del timeout I/O sui processori di messaggi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

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

Il timeout I/O sul processore di messaggi rappresenta il tempo durante il quale il processore di messaggi attende di ricevere una risposta dal server di backend o che il socket sia pronto a scrivere una richiesta al server di backend, prima che scada.

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

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

  • Nel proxy API:
    • Endpoint di destinazione
    • Norme sui callout di servizio
  • 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
  • Norme sui callout di servizio

Questo è il tempo massimo per il quale il processore di messaggi esegue le seguenti operazioni:

  • Attende di ricevere una risposta dal server di backend, dopo aver stabilito la connessione e aver inviato la richiesta al server di backend OPPURE
  • Attende che il socket sia pronto affinché il processore di messaggi invii la richiesta al server di backend.

Se il server di backend non risponde entro questo periodo di timeout, si verifica il timeout del processore di messaggi.

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

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

HTTPTransport.io.timeout.millis processore di messaggi

Questo è il tempo massimo per il quale il processore di messaggi esegue le seguenti operazioni:

  • Attende di ricevere una risposta dal server di backend, dopo aver stabilito la connessione e aver inviato la richiesta al server di backend OPPURE
  • Attende che il socket sia pronto affinché il processore di messaggi invii la richiesta al server di backend.

Se il server di backend non risponde entro questo periodo di timeout, si verifica il timeout del processore di messaggi.

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 sovrascrivere questo valore impostando la proprietà io.timeout.millis a livello di proxy API.

Prima di iniziare

Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:

Configurazione del timeout I/O nel proxy API

Il timeout I/O può essere configurato nelle seguenti posizioni del proxy API:

  • Endpoint di destinazione
  • Norme sui callout di servizio

Configurazione del 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 di timeout I/O in millisecondi.

  1. Nella UI 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 impostare il timeout I/O su 120 secondi, aggiungi il seguente blocco di codice:

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

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

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

    Esempio di configurazione dell'endpoint di destinazione utilizzando 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 utilizzando 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.

Configurazione del timeout I/O nel criterio ServiceCallout del proxy API

Questa sezione spiega come configurare il timeout I/O nel criterio 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> che la proprietà io.timeout.millis rappresentano i valori di timeout I/O in millisecondi.

Puoi configurare il timeout I/O nel criterio ServiceCallout utilizzando uno dei seguenti metodi:

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

Elemento timeout

Per configurare il timeout I/O nel criterio ServiceCallout utilizzando l'elemento <Timeout>, segui questi passaggi:

  1. Nella UI di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout I/O per il criterio ServiceCallout.
  2. Seleziona le norme ServiceCallout specifiche che vuoi modificare.
  3. Aggiungi l'elemento <Timeout> con un valore appropriato sotto la configurazione <ServiceCallout>.

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

        <Timeout>120000</Timeout>
    

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

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

    Esempio di configurazione dei criteri di ServiceCallout utilizzando 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 nel criterio ServiceCallout utilizzando la proprietà io.timeout.millis, segui questi passaggi:

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

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

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

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

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

    Esempio di configurazione dei criteri di ServiceCallout utilizzando 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 dei criteri di ServiceCallout utilizzando 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.

Configurazione del 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 di timeout I/O in millisecondi sul componente Message Processor, utilizzando il token secondo la sintassi descritta in Come configurare Edge.

Per configurare il timeout I/O sui processori di messaggi, segui questi passaggi:

  1. Nel computer 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 formato seguente al file delle proprietà, sostituendo un valore per TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Ad esempio, per impostare il timeout I/O sul processore di messaggi su 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 disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

Verifica del 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. Nel computer del processore di messaggi, cerca la proprietà HTTPTransport.io.timeout.millis nella directory /opt/apigee/edge-message-processor/conf e controlla 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 riportato sopra mostra il nuovo valore nel file http.properties.
  3. Il risultato di esempio del comando precedente dopo aver configurato il timeout I/O su 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. Questo indica che il timeout I/O è stato configurato correttamente su 120 secondi sul processore di messaggi.

  4. Se vedi ancora il valore precedente 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 qualche passaggio, ripeti correttamente tutti i passaggi.
  5. Se ancora non riesci a modificare il timeout I/O, contatta l'assistenza Apigee Edge.

Passaggi successivi

Scopri di più sulla configurazione del timeout I/O sui router