Anti-pattern: memorizza nella cache dati di dimensioni superiori a 256 kB

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

Apigee offre la possibilità di archiviare i dati in una cache in fase di runtime per garantire la persistenza e un recupero più rapido.

  • I dati vengono inizialmente archiviati nella cache in memoria del processore di messaggi, denominata cache L1.
  • La cache L1 è limitata dalla quantità di memoria riservata, espressa come percentuale della memoria JVM.
  • Le voci memorizzate nella cache vengono successivamente rese persistenti nella cache L2, accessibile a tutti i processori di messaggi. Per ulteriori dettagli, consulta la sezione di seguito.
  • La cache L2 non ha un limite fisso al numero di voci della cache, tuttavia la dimensione massima della voce che può essere memorizzata nella cache è limitata a 256 kB. La dimensione della cache di 256 kB è quella consigliata per ottenere prestazioni ottimali.

Antipattern

Questo particolare anti-pattern illustra le implicazioni del superamento delle attuali limitazioni delle dimensioni della cache in Apigee.

Quando i dati di dimensioni superiori a 256 kB vengono memorizzati nella cache, le conseguenze sono le seguenti:

  • Le richieste API eseguite per la prima volta su ciascuno dei processori di messaggi devono ottenere i dati in modo indipendente dall'origine (criterio o server di destinazione), poiché le voci > 256 kB non sono disponibili nella cache L2.
  • L'archiviazione di dati più grandi (> 256 kB) nella cache L1 tende a causare maggiore stress sulle risorse della piattaforma. Ne consegue che la memoria della cache L1 viene riempita più rapidamente e, di conseguenza, riduce la disponibilità di spazio per altri dati. Di conseguenza, non sarà possibile memorizzare i dati nella cache con la modalità desiderata.
  • Le voci memorizzate nella cache dai processori di messaggi verranno rimosse al raggiungimento del limite di voci. In questo modo i dati vengono nuovamente recuperati dalla sorgente originale sui rispettivi processori di messaggi.

Due diagrammi di flusso.
  Uno per dimensioni <=512 kB che mostra i flussi tra proxy API e processori di messaggi e i flussi tra processori di messaggi e cache L2 dell&#39;archiviazione permanente. Uno per dimensioni> 512 kB che mostra i flussi tra il proxy API e i processori di messaggi e i flussi tra i processori di messaggi e i dati/risposta non archiviati nella cache L2.

Impatto

  • I dati di dimensioni > 256 kB non verranno archiviati in L2/cache persistente.
  • Chiamate più frequenti all'origine originale (un criterio o un server di destinazione) comportano un aumento delle latenze per le richieste API.

Best practice

  • Per ottenere prestazioni ottimali, è preferibile archiviare dati di dimensioni < 256 kB nella cache.
  • Se è necessario archiviare dati > 256 kB, considera quanto segue:
    • Utilizzare qualsiasi database appropriato per l'archiviazione di dati di grandi dimensioni

      OR

    • Compressione dei dati

Per approfondire