Configurazione del timeout della connessione su Elaboratori dei messaggi

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

Questo documento spiega come configurare il timeout della connessione per i processori di messaggi Apigee Edge.

Il timeout della connessione rappresenta il tempo durante il quale il processore di messaggi attende per stabilire una connessione con il server di destinazione. Il valore predefinito della proprietà di timeout della connessione sul processore di messaggi è di 3 secondi. 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 della connessione per i processori di messaggi può essere aumentato o diminuito dal valore predefinito di 3 secondi, in base alle tue esigenze. Può essere configurato nei seguenti modi:

  • Nel proxy API:
    • Nell'endpoint di destinazione
    • Nel criterio ServiceCallout
  • Sul processore di messaggi

Le seguenti proprietà controllano il timeout della connessione sui processori di messaggi:

Nome proprietà Località Descrizione
connect.timeout.millis Proxy API:
  • Endpoint di destinazione
  • ServiceCallout criterio

Questo è il tempo massimo che il processore di messaggi attende per connettersi al server di destinazione.

Per impostazione predefinita, questa proprietà accetta il valore impostato per la proprietà HTTPClient.connect.timeout.millis sul processore di messaggi, dove il valore predefinito è di 3 secondi.

Se questa proprietà viene modificata con un nuovo valore di timeout per il server di destinazione associato a un proxy API, viene influenzato solo il tempo di connessione per quel server di destinazione.

HTTPClient.connect.timeout.millis processore di messaggi

Questo è il tempo massimo che il processore di messaggi attende per connettersi al server di destinazione.

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

Il valore predefinito di questa proprietà è di 3 secondi.

Puoi modificare questa proprietà come spiegato nella sezione Configurare il timeout della connessione sui processori di messaggi di seguito oppure puoi sovrascrivere questo valore impostando la proprietà connect.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 della connessione nel proxy API

Il timeout della connessione può essere configurato nel proxy API nei seguenti modi:

  • Endpoint di destinazione
  • ServiceCallout criterio

Configurazione del timeout della connessione nell'endpoint di destinazione del proxy API

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

  1. Nella UI di Edge, seleziona il proxy API specifico in cui vuoi configurare il nuovo valore di timeout della connessione.
  2. Seleziona l'endpoint di destinazione specifico che vuoi modificare.
  3. Aggiungi la proprietà connect.timeout.millis con un valore appropriato sotto l'elemento <HTTPTargetConnection> nella configurazione TargetEndpoint.

    Ad esempio, per modificare il timeout della connessione in 5 secondi, aggiungi il seguente blocco di codice:

    <Properties>
      <Property name="connect.timeout.millis">5000</Property>
    </Properties>
    

    Poiché la proprietà connect.timeout.millis è espressa in millisecondi, il valore di 5 secondi è 5000.

    I seguenti esempi mostrano come configurare il timeout della connessione 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="connect.timeout.millis">5000</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="connect.timeout.millis">5000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  4. Salva le modifiche apportate al proxy API.

Configurazione del timeout della connessione nel criterio ServiceCallout del proxy API

Questa sezione spiega come configurare il timeout della connessione nel criterio ServiceCallout del proxy API. Il timeout della connessione può essere configurato tramite la proprietà connect.timeout.millis, che rappresenta il valore del tempo di connessione in millisecondi.

Per configurare il timeout della connessione nel criterio ServiceCallout utilizzando la proprietà connect.timeout.millis:

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

    Ad esempio, per modificare il timeout della connessione in 5 secondi, aggiungi il seguente blocco di codice:

    <Properties>
      <Property name="connect.timeout.millis">5000</Property>
    </Properties>
    

    Poiché la proprietà connect.timeout.millis è espressa in millisecondi, il valore di 5 secondi è 5000.

    I seguenti esempi mostrano come configurare il timeout della connessione nel criterio ServiceCallout del proxy API:

    Esempio di configurazione dei criteri di ServiceCallout utilizzando l'URL per il server di backend

    <ServiceCallout name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <HTTPTargetConnection>
        <Properties>
          <Property name="connect.timeout.millis">5000</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>Service Callout-1</DisplayName>
      <Response>calloutResponse</Response>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="connect.timeout.millis">5000</Property>
        </Properties>
      <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Salva le modifiche apportate al proxy API.

Configurazione del timeout della connessione sui processori di messaggi

Questa sezione spiega come configurare il timeout della connessione sui processori di messaggi. Il timeout della connessione può essere configurato tramite la proprietà conf_http_HTTPClient.connect.timeout.millis, che rappresenta il valore di timeout della connessione in millisecondi sul componente Message Processor, utilizzando il token in base alla sintassi descritta in Come configurare Edge.

Per configurare il timeout della connessione 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 quanto segue:

    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_HTTPClient.connect.timeout.millis=TIME_IN_MILLISECONDS
    

    Ad esempio, per modificare il timeout della connessione sul processore di messaggi in 5 secondi, aggiungi la seguente riga:

    conf_http_HTTPClient.connect.timeout.millis=5000
    
  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 della connessione sui processori di messaggi

Questa sezione spiega come verificare che il timeout della connessione sia stato modificato correttamente sui processori di messaggi.

Anche se utilizzi il token conf_http_HTTPClient.connect.timeout.millis per impostare il timeout della connessione sul processore di messaggi, devi verificare se la proprietà effettiva HTTPClient.connect.timeout.millis è stata impostata con il nuovo valore.

  1. Nel computer del processore di messaggi, cerca la proprietà HTTPTransport.connect.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 "HTTPClient.connect.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Se il nuovo valore di timeout della connessione viene impostato correttamente sul processore di messaggi, il comando riportato sopra mostra il nuovo valore nel file http.properties.

    Il risultato di esempio del comando riportato sopra dopo aver configurato il timeout della connessione su 5 secondi è il seguente:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.connect.timeout.millis=5000
    

    Nell'output di esempio riportato sopra, puoi notare che la proprietà HTTPClient.connect.timeout.millis è stata impostata con il nuovo valore 5000 in http.properties. Questo indica che il timeout della connessione è stato configurato correttamente su 5 secondi sul processore di messaggi.

  3. Se vedi ancora il valore precedente per la proprietà HTTPClient.connect.timeout.millis, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare il timeout della connessione sui processori di messaggi correttamente. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi.
  4. Se ancora non riesci a modificare il timeout della connessione, contatta l'assistenza Apigee Edge di Google Cloud.