Processi interni della cache

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questo argomento descrive il funzionamento della cache al di sotto di criteri come popola criterio, criterio LookupCache, criterio InvalidateCache e Criterio diResponseCache.

Informazioni sulle cache

Quando viene eseguito un criterio di memorizzazione nella cache, viene creata una cache L1 di breve durata. Dopo un secondo, se non si accede a un elemento memorizzato nella cache, questo viene mantenuto in un database dove è disponibile per tutti i processori di messaggi di cui è stato eseguito il deployment in un ambiente fino alla scadenza della cache. La scadenza viene configurata direttamente nel criterio della cache.

Livelli di cache in memoria e persistenti

Sia le cache condivise sia quelle dell'ambiente sono basate su un sistema a due livelli costituito da un livello in memoria e da un livello permanente, come mostrato nella figura seguente. I criteri interagiscono con entrambi i livelli come framework combinato. Apigee gestisce la relazione tra i livelli.

I criteri di memorizzazione nella cache interagiscono con gli elaboratori di messaggi di Livello 1, che interagiscono con lo spazio di archiviazione permanente di Livello 2
  • Il livello 1 è una cache in memoria (L1) per un accesso rapido. Ogni nodo di elaborazione dei messaggi (MP) ha una propria cache in memoria per una risposta più rapida alle richieste.
    • L1 è una cache in memoria di breve durata (1 secondo).
    • Quando viene raggiunto il limite di memoria, Apigee rimuove le voci della cache dalla memoria (sebbene rimangono nella cache permanente L2) per garantire che la memoria rimanga disponibile per altri processi.
    • L1 è dotato di una cache di un secondo di breve durata per eseguire ricerche più rapide per richieste concorrenti con la stessa chiave della cache.
  • Il livello 2 è una cache permanente (L2) sotto la cache in memoria. Tutti i nodi di elaborazione dei messaggi condividono un archivio dati della cache (Cassandra) per la persistenza delle voci della cache.
    • Le voci della cache rimangono qui anche dopo essere state rimosse dalla cache L1, ad esempio quando vengono raggiunti i limiti in memoria.
    • Poiché la cache permanente è condivisa tra i processori dei messaggi (anche in regioni), le voci della cache sono disponibili indipendentemente dal nodo che riceve la richiesta memorizzati nella cache.
    • Solo le voci di una certa dimensione possono essere memorizzate nella cache e si applicano altri limiti di cache. Vedi Gestire i limiti della cache.
    • Nella versione L2, il contenuto della cache è criptato con l'algoritmo AES-256. I dati vengono decriptati prima di essere utilizzati dal runtime e vengono criptati prima di essere scritti in L2. per cui il processo di crittografia è invisibile agli utenti.

Utilizzo della cache da parte dei criteri

Di seguito viene descritto in che modo Apigee gestisce le voci della cache al pari dei criteri di memorizzazione nella cache il proprio lavoro.

  • Quando un criterio scrive una nuova voce nella cache (CompilaCache o criterio ResponseCache):
    1. Apigee scrive la voce nella cache L1 in memoria solo sul processore di messaggi che ha gestito la richiesta. Se i limiti di memoria del processore dei messaggi vengono raggiunti prima della scadenza della voce, Apigee rimuove la voce dalla cache L1.
    2. Apigee scrive anche la voce nella cache L2.
  • Quando un criterio legge dalla cache (criterio LookupCache o ResponseCache):
    1. Apigee cerca per prima la voce nella cache L1 in memoria del processore di messaggi per gestire la richiesta.
    2. Se non esiste una voce in memoria corrispondente, Apigee la cerca nella cache permanente L2.
    3. Se la voce non si trova nella cache persistente:
  • Quando una norma aggiorna o rende non valida una voce della cache esistente (norma InvalidateCache, norma PopulateCache o norma ResponseCache):
    1. Il processore di messaggi che riceve la richiesta elimina la voce dalla richiesta cache L1 in memoria ed elimina la voce anche dalla cache L2.
    2. Dopo un aggiornamento o un'annullamento della convalida, è possibile che gli altri processori di messaggi mantenere comunque la cache L1 in memoria.
    3. Poiché L1 è configurato per scadere in un secondo, non è necessario un evento di eliminazione/aggiornamento per rimuovere la voce da L1.

Gestione dei limiti della cache

Tramite la configurazione, puoi gestire alcuni aspetti della cache. Lo spazio complessivo disponibile per la cache in memoria è limitato dalle risorse di sistema e non è configurabile. Alla cache si applicano i seguenti vincoli:

  • Limiti della cache: vari limiti della cache applicabili, come dimensioni nome e valore, numero totale di cache, numero di elementi contenuti in una cache e la scadenza.
  • Cache in memoria (L1). I limiti di memoria per la cache non sono configurabili. I limiti vengono impostati da Apigee per ogni elaboratore di messaggi che ospita cache per più clienti.

    In un ambiente cloud ospitato, dove sono ospitate le cache in memoria per tutte le implementazioni dei clienti su più processori di messaggi condivisi, ciascun processore dispone di un per garantire che la memorizzazione nella cache non consumi tutte le risorse dell'applicazione la memoria. Quando la soglia viene superata per un determinato processore di messaggi, le voci della cache vengono rimosse. meno recenti. Le voci espulse dalla memoria rimangono nella cache L2 fino alla scadenza o all'invalidazione.

  • Cache permanente (L2). Le voci espulse dalla cache in memoria rimangono nella cache permanente in base alle impostazioni di TTL (Time-To-Live) configurabili.

Ottimizzazioni configurabili

La tabella seguente elenca le impostazioni che puoi utilizzare per ottimizzare le prestazioni della cache.

Impostazione Descrizione Note
Scadenza Specifica la durata (TTL) delle voci della cache. Nessuno