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:
- Apri l'app
di configurazione del deployment
/opt/apigee/customer/application/message-processor.properties
in un editor. Se il file non esiste, crealo. - Imposta la proprietà TTL massimo L1 sul valore desiderato:
conf_cache_max.l1.ttl.in.seconds = 180
Ti consigliamo il valore
180
secondi. - Assicurati che il file delle proprietà appartenga all'elemento "apigee" utente:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 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: riduciconf_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: aumentaconf_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.