Processi interni della cache

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza 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 eseguita una cache L1 di breve durata viene creato. 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 configurazione della scadenza viene configurata direttamente nel criterio della cache.

Livelli di cache in memoria e permanente

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

I criteri di memorizzazione nella cache interagiscono con i processori di messaggi di livello 1 che interagiscono con il livello 2
            archiviazione permanente
  • Il livello 1 è una cache in memoria (L1) per un accesso rapido. Ogni nodo di elaborazione dei messaggi (MP) dispone di una propria cache in memoria per la 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 dispone di una cache di un secondo di breve durata per eseguire ricerche più rapide richieste in parallelo con la stessa chiave cache.
  • Il livello 2 è una cache permanente (L2) sotto la cache in memoria. Elaborazione di tutti i messaggi i nodi condividono un datastore della cache (Cassandra) per le voci della cache persistenti.
    • 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 determinata dimensione possono essere memorizzate nella cache e si applicano altri limiti. Vedi Gestione dei 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 prima della scrittura 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 vengono raggiunti i limiti di memoria nel processore di messaggi prima della scadenza della voce, Apigee la rimuove 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 cerca la voce nell'elenco L2 e la cache permanente.
    3. Se la voce non si trova nella cache persistente:
      • Criterio LookupCache: non viene recuperato nessun valore dalla cache.
      • Criterio diResponseCache: Apigee restituisce la risposta effettiva dal target al e archivia la voce nella cache finché non scade o viene invalidata.
  • Quando un criterio aggiorna o nulla un criterio esistente voce della cache (criterio InvalidateCache, criterio compileCache o criterioResponseCache):
    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é la versione L1 è configurata per scadere tra un secondo, non è presente alcun evento di eliminazione/aggiornamento necessario per rimuovere la voce da L1.

Gestione dei limiti di 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 sono impostato da Apigee per ogni processore 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 rimosse dalla memoria rimangono nella cache L2 fino alla loro scadenza o invalidità.

  • Cache permanente (L2). Voci rimosse dalla cache in memoria rimangono nella cache persistente in base alle impostazioni di durata 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 delle voci della cache. Nessuno