Configurazione del timeout I/O sui processori di messaggi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione Documentazione di Apigee X.
Informazioni

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

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

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

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

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

Le seguenti proprietà controllano il timeout di 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 periodo di tempo massimo durante il quale il processore di messaggi esegue le seguenti operazioni:

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

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

Per impostazione predefinita, questa proprietà utilizza il valore impostato per 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, solo questo proxy API è interessato.

HTTPTransport.io.timeout.millis processore di messaggi

Questo è il periodo di tempo massimo durante 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 inviare la richiesta al server di backend OPPURE
  • Attende che il socket sia pronto affinché il processore di messaggi invii la richiesta a il server di backend.

Se il server di backend non risponde entro questo periodo di timeout, il parametro 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 Configura il timeout I/O sui processori di messaggi oppure sovrascrivere questo valore impostando la proprietà io.timeout.millis nell'API a livello di proxy.

Prima di iniziare

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

di Gemini Advanced.

Configurazione del timeout di I/O nel proxy API

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

  • Endpoint di destinazione
  • Norme ServiceCallout

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 di I/O può essere configurato tramite la proprietà io.timeout.millis, che rappresenta il valore di timeout I/O in millisecondi.

di Gemini Advanced.
  1. Nella UI Edge, seleziona il proxy API specifico in cui desideri 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 il campo 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 è in millisecondi, il valore di 120 secondi corrispondono a 120000.

    Gli esempi seguenti mostrano come configurare il timeout di I/O nell'endpoint di destinazione configurazione 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 di 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 tuo proxy API. Il timeout di I/O può essere configurato tramite l'elemento <Timeout> o la proprietà io.timeout.millis. Sia l'elemento <Timeout> che io.timeout.millis rappresenta i valori di timeout di I/O in millisecondi.

di Gemini Advanced.

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

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

Timeout elemento

Per configurare il timeout di I/O nel criterio ServiceCallout utilizzando il <Timeout> procedi nel seguente modo:

  1. Nella UI Edge, seleziona il proxy API specifico in cui desideri configurare nuovo valore di timeout I/O per il criterio ServiceCallout.
  2. Seleziona lo specifico criterio ServiceCallout che vuoi modificare.
  3. Aggiungi l'elemento <Timeout> con un valore appropriato sotto i Configurazione di <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> è in millisecondi, il valore di 120 secondi corrispondono a 120000.

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

    Esempio di configurazione di criteri ServiceCallout con l'URL del 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 di I/O nel criterio ServiceCallout utilizzando il metodo io.timeout.millis, segui questi passaggi:

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

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

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

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

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

    Esempio di configurazione di criteri ServiceCallout con l'URL del 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 di criteri ServiceCallout con l'utilizzo del 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 di I/O sui processori di messaggi

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

di Gemini Advanced.

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

  1. Sul computer del processore di messaggi, apri il file seguente in un editor. In caso contrario esiste già, quindi lo creeremo.
    /opt/apigee/customer/application/message-processor.properties
    

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

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

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

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Salva le modifiche.
  4. Verifica che il file delle proprietà appartenga all'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 utilizzi più di un processore di messaggi, ripeti i passaggi precedenti su tutte le Processori.

Verifica del timeout di I/O sui processori di messaggi

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

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

  1. Sul computer dell'elaboratore di messaggi, cerca la proprietà HTTPTransport.io.timeout.millis nella directory /opt/apigee/edge-message-processor/conf e controlla se sia stato impostato 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, quanto 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 precedente, nota che la proprietà HTTPTransport.io.timeout.millis è stato impostato con il nuovo valore 120000 in http.properties. Questo indica che il timeout di I/O è stato configurato correttamente fino a 120 secondi sul processore di messaggi.

  4. Se visualizzi ancora il valore precedente per la proprietà HTTPTransport.io.timeout.millis, quindi verifica di aver seguito tutti i passaggi descritti nella Configurare correttamente il timeout di I/O sui processori di messaggi. Se disponi hai saltato un passaggio, ripeti tutti i passaggi correttamente.
  5. Se ancora non riesci a modificare il timeout di I/O, contatta Assistenza Apigee Edge.

Passaggi successivi

Informazioni su Configurare il timeout di I/O sui router