Configurazione del timeout della connessione su Elaboratori dei messaggi

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

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

Il timeout di connessione rappresenta il tempo durante il quale il processore di messaggi attende di stabilire la connessione con il server di destinazione. Il valore predefinito della proprietà del timeout di connessione nel processore di messaggi è 3 secondi. Questo periodo di timeout è applicabile ai server di backend configurati nella configurazione dell'endpoint di destinazione e nella ServiceCallout policy del proxy API.

Il timeout di connessione per i processori di messaggi può essere aumentato o diminuito rispetto al valore predefinito di 3 secondi in base alle tue esigenze. Può essere configurato nei seguenti modi:

  • Nel proxy API
    • Nell'endpoint di destinazione
    • Nella policy ServiceCallout
  • Nel processore di messaggi

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

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

Questo è il tempo massimo durante il quale il processore di messaggi attende di connettersi al server di destinazione.

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

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

HTTPClient.connect.timeout.millis Processore di messaggi

Questo è il tempo massimo durante il quale il processore di messaggi attende di 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à è 3 secondi.

Puoi modificare questa proprietà come spiegato in Configurare il timeout di connessione nei processori di messaggi di seguito oppure puoi sovrascrivere questo valore impostando la connect.timeout.millis proprietà a livello di proxy API.

Prima di iniziare

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

Configurare il timeout di connessione nel proxy API

Il timeout di connessione può essere configurato nel proxy API nei seguenti punti:

  • Endpoint di destinazione
  • Policy ServiceCallout

Configurare il timeout di connessione nell'endpoint di destinazione del proxy API

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

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

    Ad esempio, per modificare il timeout di 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 è in millisecondi, il valore per 5 secondi è 5000.

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

Configurare il timeout di connessione nella policy ServiceCallout del proxy API

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

Per configurare il timeout di connessione nella ServiceCallout policy utilizzando la connect.timeout.millis proprietà:

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

    Ad esempio, per modificare il timeout di 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 è in millisecondi, il valore per 5 secondi è 5000.

    Gli esempi riportati di seguito mostrano come configurare il timeout di connessione nella ServiceCallout policy del proxy API:

    Esempio di configurazione della policy ServiceCallout che utilizza 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 della policy ServiceCallout che utilizza 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.

Configurare il timeout di connessione nei processori di messaggi

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

Per configurare il timeout di connessione nei processori di messaggi:

  1. Nella 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 quanto segue:

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

    Ad esempio, per modificare il timeout di connessione nel 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 hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.

Verificare il timeout di connessione nei processori di messaggi

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

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

  1. Nella macchina del processore di messaggi, cerca la proprietà HTTPTransport.connect.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 "HTTPClient.connect.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Se il nuovo valore del timeout di connessione è stato impostato correttamente nel processore di messaggi, il comando precedente mostra il nuovo valore nel file http.properties.

    Il risultato di esempio del comando precedente dopo aver configurato il timeout di 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, nota che la proprietà HTTPClient.connect.timeout.millis è stata impostata con il nuovo valore 5000 in http.properties. Ciò indica che il timeout di connessione è stato configurato correttamente su 5 secondi nel processore di messaggi.

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