Apigee Edge fornisce la memorizzazione nella cache per la persistenza dei dati tra le richieste. Quando i dati dell'API vengono ricevuti, vengono archiviati nella cache per un breve periodo di tempo e poi eliminati. Il periodo di tempo massimo per cui un dato viene conservato prima di essere eliminato è 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 dell'API.
Tipi di cache
I dati dell'API vengono archiviati in due tipi di cache:
- Livello 1 (L1): memoria cache, che ha un accesso più rapido, ma una capacità di archiviazione disponibile inferiore.
- Livello 2 (L2): cache permanente in un datastore Cassandra, che ha un accesso più lento, ma una capacità di archiviazione disponibile maggiore.
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 della cache L1), dove rimane accessibile ad altri processori di messaggi. Per ulteriori dettagli sulla cache, consulta Livelli di cache in memoria e persistente.
TTL L1 max
In Edge for Private Cloud, puoi impostare il TTL massimo della cache L1 per ogni processore di messaggi utilizzando la proprietà Max L1 TTL (conf_cache_max.l1.ttl.in.seconds).
Una voce nella cache L1 scadrà dopo aver raggiunto il valore Max L1 TTL e verrà eliminata.
Note:
- Per impostazione predefinita, il TTL L1 max è disabilitato (con il valore
-1), nel qual caso il TTL di una voce nella cache L1 è determinato dalle impostazioni di scadenza della policy PopulateCache (sia per la cache L1 che per la cache L2). - Il TTL L1 massimo ha effetto solo se il suo valore è inferiore alla scadenza complessiva della cache.
Impostazione del TTL L1 massimo
Puoi impostare il TTL L1 massimo su un processore di messaggi nel seguente modo:
- Apri il
file di configurazione
/opt/apigee/customer/application/message-processor.propertiesin un editor. Se il file non esiste, crealo. - Imposta la proprietà TTL L1 massimo sul valore desiderato:
conf_cache_max.l1.ttl.in.seconds = 180
Ti consigliamo di impostare il valore su
180secondi. - Assicurati che il file delle proprietà sia di proprietà dell'utente "apigee":
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:
- Errori RPC: se noti errori di chiamata di procedura remota (RPC) tra i processori di messaggi (MP), in particolare tra più data center, è possibile che la cache L1 contenga voci obsolete, che rimarranno tali finché non verranno eliminate dalla cache L1. Se imposti TTL L1 max su un valore inferiore, le voci obsolete vengono rimosse e sostituite con valori aggiornati dalla cache L2 più rapidamente.
Soluzione: riduciconf_cache_max.l1.ttl.in.seconds. - Carico eccessivo su Cassandra: quando imposti un valore per TTL L1 max, le voci della cache L1 scadono più spesso, il che comporta un maggior numero di fallimenti della cache L1 e un maggior numero di successi della cache L2. Poiché la cache L2 verrà utilizzata più spesso,
Cassandra subirà un carico maggiore.
Soluzione: aumentaconf_cache_max.l1.ttl.in.seconds
In linea generale, ottimizza il TTL L1 massimo su un valore che bilanci la frequenza di errori RPC tra i processori di messaggi con il potenziale carico su Cassandra.
Ti consigliamo di impostare il valore di conf_cache_max.l1.ttl.in.seconds su almeno
180 secondi (3 minuti) per mantenere l'elaborazione senza problemi.