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

Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza Documentazione di Apigee Edge.

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

  • I dati vengono inizialmente archiviati nella cache in memoria del processore di messaggi, denominata L1 Cache.
  • La cache L1 è limitata dalla quantità di memoria riservata espressa come percentuale della JVM la memoria.
  • Le voci memorizzate nella cache vengono successivamente rese persistenti nella cache L2, accessibile a tutti Processori. Per ulteriori dettagli, consulta la sezione di seguito.
  • La cache L2 non ha alcun limite al numero di voci della cache, tuttavia il numero massimo size della voce che può essere memorizzata nella cache è limitata a 256 kB. Le dimensioni della cache di 256 kB sono consigliata per un rendimento ottimale.

Antipattern

Questo particolare anti-pattern spiega le implicazioni derivanti dal superamento delle attuali dimensioni della cache limitazioni in Apigee.

Quando i dati > Nella cache vengono memorizzati una dimensione di 256 kB, con le seguenti conseguenze:

  • Le richieste API eseguite per la prima volta su ciascuno dei processori di messaggi devono ottenere indipendenti dalla sorgente originale (criterio o server di destinazione), come voci > 256 kB non sono disponibili nella cache L2.
  • L’archiviazione di dati più grandi (> 256 KB) nella cache L1 tende a porre maggiore stress sulla piattaforma Google Cloud. In questo modo, la memoria cache L1 viene riempita più velocemente e di conseguenza meno spazio disponibili per altri dati. Di conseguenza, non sarà possibile memorizzare i dati nella cache in modo aggressivo.
  • Le voci memorizzate nella cache dei processori di messaggi vengono rimosse quando il limite relativo al numero di vengono raggiunte. Questo fa sì che i dati vengano recuperati di nuovo dall'origine originale nella il rispettivo processore di messaggio.

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

Impatto

  • Dati sulle dimensioni > 256 kB non verranno archiviati nella cache L2/persistente.
  • Chiamate più frequenti all'origine originale (un criterio o un server di destinazione) portano a e un aumento della latenza per le richieste API.

Best practice

  • È preferibile memorizzare dati di dimensioni < 256 kB di cache per ottenere prestazioni ottimali.
  • Se è necessario archiviare i dati > 256 kB, considera quindi:
    • Utilizzo di database appropriati per l'archiviazione di dati di grandi dimensioni

      OR

    • Compressione dei dati

Per approfondire