Imposta la scadenza della cache L1 su un processore di messaggi

Apigee Edge fornisce una memorizzazione nella cache per la persistenza dei dati nelle richieste. Quando i dati dell'API vengono ricevuti, vengono archiviati nella cache per un breve periodo di tempo e quindi eliminati. La quantità massima di tempo per cui un dato viene conservato prima di essere eliminati è detta 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 dell'API.

Tipi di cache

I dati delle API sono archiviati in due tipi di cache:

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

Quando una voce di dati nella cache L1 raggiunge il TTL L1, viene eliminata. Tuttavia, una copia della voce viene conservata nella cache L2 (che ha un TTL più lungo rispetto alla cache L1), dove rimane accessibile ad altri processori di messaggi. Per ulteriori dettagli sulla cache, consulta Livelli di cache in memoria e permanenti.

TTL L1 massimo

In Edge per il cloud privato, puoi impostare il TTL massimo della cache L1 per ciascun processore di messaggi utilizzando la proprietà TTL L1 massimo (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 L1 massimo è disattivato (con il valore -1), nel qual caso il TTL di una voce nella cache L1 è determinato dalle impostazioni di scadenza del criterio PopulateCache (per le cache L1 e L2).
  • Il TTL massimo L1 ha effetto solo se il suo valore è inferiore alla scadenza complessiva della cache.

Impostazione del TTL L1 massimo

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

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

    Consigliamo il valore di 180 secondi.

  3. Assicurati che il file delle proprietà sia di proprietà dell'utente "apigee":
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Riavvia il processore dei 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:

  • Errori RPC: se noti fallimenti della chiamata di procedura remota (RPC) tra i 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 di un valore più basso per il valore TTL massimo L1 impone la rimozione delle voci inattive e la sostituzione più rapida con nuovi valori della cache L2.
    Soluzione: riduci conf_cache_max.l1.ttl.in.seconds.
  • Carico eccessivo su Casandra: quando imposti un valore per TTL L1 massimo, le voci della cache L1 scadranno più spesso, portando a un numero maggiore di fallimenti della cache L1 e di hit della cache L2. Poiché la cache L2 verrà raggiunta più spesso, Cassandra comporterà un aumento del carico.
    Soluzione: aumenta conf_cache_max.l1.ttl.in.seconds

Come regola generale, configura il TTL Max L1 su un valore che bilancia la frequenza delle mancate visualizzazioni RPC tra i MP con il carico potenziale su Cassandra.

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