Imposta la scadenza della cache L1 su un processore di messaggi

Apigee Edge offre la memorizzazione nella cache per la persistenza dei dati tra le richieste. Quando i dati dell'API vengono ricevuti, rimangono memorizzati nella cache per un breve periodo di tempo per poi eliminarlo. La quantità massima di tempo in cui un dato viene conservato prima di essere eliminato viene chiamato scadenza o durata (TTL) della cache. Ogni cache ha un TTL predefinito, ma in alcuni casi potrebbe essere necessario modificare il valore TTL per migliorare le prestazioni delle API.

Tipi di cache

I dati dell'API vengono archiviati in due tipi di cache:

  • Livello 1 (L1): cache in memoria, che offre un accesso più rapido ma meno spazio di archiviazione disponibile e la capacità di archiviazione.
  • Livello 2 (L2): cache permanente in un datastore Cassandra, che ha un rallentamento ma con maggiore capacità di archiviazione disponibile.

Quando una voce di dati nella cache L1 raggiunge il TTL L1, viene eliminata. Tuttavia, un della voce viene conservata nella cache L2 (che ha una durata TTL più lunga rispetto alla cache L1), dove rimane accessibile ad altri processori di messaggi. Vedi In memoria e livelli di cache permanenti per ulteriori dettagli.

TTL L1 massimo

In Edge per il cloud privato puoi impostare il TTL massimo della cache L1 per ogni messaggio del processore utilizzando la proprietà TTL massimo L1 (conf_cache_max.l1.ttl.in.seconds). Una voce nella cache L1 scadrà dopo aver raggiunto il valore TTL massimo L1 e verrà eliminata.

Note:

  • Per impostazione predefinita, il TTL massimo L1 è disabilitato (con il valore -1), in questo caso viene determinato il TTL di una voce nella cache L1. dal criterio DetailsCache impostazioni di scadenza (sia per la cache L1 che per L2).
  • Il TTL L1 massimo ha un effetto solo se il suo valore è inferiore alla scadenza complessiva della cache.

Impostazione del TTL L1 massimo

Puoi impostare il TTL massimo L1 su un processore di messaggi come segue:

  1. Apri l'app di configurazione del deployment /opt/apigee/customer/application/message-processor.properties in un editor. Se il file non esiste, crealo.
  2. Imposta la proprietà TTL massimo L1 sul valore desiderato:
    conf_cache_max.l1.ttl.in.seconds = 180

    Ti consigliamo il valore 180 secondi.

  3. Assicurati che il file delle proprietà appartenga all'elemento "apigee" utente:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Riavvia il processore di messaggi:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Linee guida per l'impostazione del TTL L1 massimo

Quando imposti il TTL L1 massimo, tieni presente le seguenti linee guida:

  • Mancati RPC: se noti errori di chiamata di procedura remota (RPC) tra processori di messaggi (MP): in particolare in più data center, è possibile che la cache L1 abbia voci inattive che rimarranno inattive finché non vengono eliminate dalla cache L1. L'impostazione del TTL massimo L1 su un valore inferiore forza qualsiasi le voci obsolete da rimuovere e sostituire con valori aggiornati dalla cache L2 al più presto.
    Soluzione: riduci conf_cache_max.l1.ttl.in.seconds.
  • Carico eccessivo su Casandra: quando imposti un valore per il TTL massimo L1, le voci della cache L1 scadrà con maggiore frequenza, con conseguente aumento del numero di fallimenti della cache L1 e di hit della cache L2. Poiché la cache L2 avrà più frequenza, Cassandra comporterà un aumento del carico.
    Soluzione: aumenta conf_cache_max.l1.ttl.in.seconds

Come regola generale, ottimizza il TTL massimo L1 su un valore che bilancia la frequenza di RPC non riesce tra diversi MP con il potenziale carico su Cassandra.

Ti consigliamo di impostare il valore conf_cache_max.l1.ttl.in.seconds su almeno 180 secondi (3 minuti) per garantire l'esecuzione dell'elaborazione senza problemi.