Configurazione del timeout di conservazione attiva 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 keep-alive per i processori di messaggi di Apigee Edge.

Il timeout keep-alive sul processore di messaggi consente a una singola connessione TCP di inviare e ricevere più richieste/risposte HTTP dal/al server di backend, anziché aprire una nuova connessione per ogni coppia richiesta/risposta.

Il valore predefinito della proprietà di timeout keep-alive sul processore di messaggi è 60 secondi. 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 keep-alive per i processori di messaggi può essere aumentato o diminuito rispetto al valore predefinito di 60 secondi in base alle tue esigenze. Può essere configurato nei seguenti modi:

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

Le seguenti proprietà controllano il timeout keep-alive sui processori di messaggi:

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

Questo è il tempo di inattività massimo per il quale il processore di messaggi consente a una singola connessione TCP di inviare e ricevere più richieste/risposte HTTP, anziché aprire una nuova connessione per ogni coppia richiesta/risposta.

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

Se questa proprietà viene modificata con un nuovo valore di timeout per il server di destinazione utilizzato nell' endpoint di destinazione o nella ServiceCallout policy nel proxy API specifico, viene interessato solo il tempo keep-alive per quel server di destinazione specifico.

HTTPClient.keepalive.timeout.millis Processore di messaggi

Questo è il tempo di inattività massimo per il quale il processore di messaggi consente a una singola connessione TCP di inviare e ricevere più richieste/risposte HTTP, anziché aprire una nuova connessione per ogni coppia richiesta/risposta.

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

Il valore predefinito di questa proprietà è 60 secondi.

Puoi modificare questa proprietà come spiegato di seguito in Configurare il timeout keep-alive sui processori di messaggi oppure puoi sovrascrivere questo valore impostando la keepalive.timeout.millis proprietà 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 keep-alive nel proxy API

Il timeout keep-alive può essere configurato nel proxy API nei seguenti punti:

  • Endpoint di destinazione
  • Policy ServiceCallout

Configurare il timeout keep-alive nell'endpoint di destinazione del proxy API

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

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

    Ad esempio, per modificare il timeout keep-alive in 30 secondi, aggiungi il seguente blocco di codice:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

    Poiché la proprietà keepalive.timeout.millis è in millisecondi, il valore per 30 secondi è 30000.

    Gli esempi seguenti mostrano come configurare il timeout keep-alive 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="keepalive.timeout.millis">30000</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="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  4. Salva le modifiche apportate al proxy API.

Configurare il timeout keep-alive nella policy ServiceCallout del proxy API

Questa sezione spiega come configurare il timeout keep-alive nella ServiceCallout policy del proxy API. Il timeout keep-alive può essere configurato tramite la proprietà the keepalive.timeout.millis che rappresenta il valore di timeout keep-alive in millisecondi.

Per configurare il timeout keep-alive nella policy ServiceCallout utilizzando la keepalive.timeout.millis proprietà:

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

    Ad esempio, per modificare il timeout keep-alive in 30 secondi, aggiungi il seguente blocco di codice:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

    Poiché la proprietà keepalive.timeout.millis è in millisecondi, il valore per 30 secondi è 30000.

    Gli esempi seguenti mostrano come configurare il timeout keep-alive nella ServiceCallout policy del proxy API:

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

    <ServiceCallout name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <HTTPTargetConnection>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <URL>https://mocktarget.apigee.net/json</URL>
      </HTTPTargetConnection>
    </ServiceCallout>

    Esempio di configurazione della policy 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="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
  4. Salva le modifiche apportate al proxy API.

Configurare il timeout keep-alive sui processori di messaggi

Questa sezione spiega come configurare il timeout keep-alive sui processori di messaggi. Il timeout keep-alive può essere configurato tramite la proprietà HTTPClient.keepalive.timeout.millis, che rappresenta il valore di timeout keep-alive in millisecondi sul componente del processore di messaggi. Poiché questa proprietà è commentata su processore di messaggi, devi utilizzare la sintassi speciale conf/http.properties+HTTPClient.keepalive.timeout.millis come descritto nella sezione Set a token that is currently commented out in How to configure Edge.

Per configurare il timeout keep-alive 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 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.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS

    Ad esempio, per modificare il timeout keep-alive sul processore di messaggi in 30 secondi, aggiungi la seguente riga:

    conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
  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 keep-alive sui processori di messaggi

Questa sezione spiega come verificare che il timeout keep-alive sia stato modificato correttamente sui processori di messaggi.

Anche se utilizzi la sintassi speciale conf/http.properties+HTTPClient.keepalive.timeout.millis per impostare il timeout keep-alive sul processore di messaggi, devi verificare se la proprietà effettiva HTTPClient.keepalive.timeout.millis è stata impostata con il nuovo valore.

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

    Il risultato di esempio del comando precedente dopo aver configurato il timeout keep-alive su 30 secondi è il seguente:

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

    Nell'output di esempio riportato sopra, nota che la proprietà HTTPClient.keepalive.timeout.millis è stata impostata con il nuovo valore 30000 in http.properties. Ciò indica che il timeout keep-alive è stato configurato correttamente su 30 secondi sul processore di messaggi.

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