Antipattern: memorizzare nella cache dati di dimensioni superiori a 256 KB

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

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

  • I dati vengono inizialmente archiviati nella memoria cache del Message Processor, chiamata cache L1.
  • La cache L1 è limitata dalla quantità di memoria riservata espressa come percentuale della JVM la memoria.
  • Le voci memorizzate nella cache vengono successivamente mantenute nella cache L2, accessibile a tutti gli elaboratori di messaggi. 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. La dimensione della cache di 256 KB è la dimensione 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 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 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. Di conseguenza, la memoria della cache L1 viene riempita più velocemente e quindi lo spazio disponibile per altri dati è minore. Di conseguenza, non sarà possibile memorizzare nella cache i dati in modo così aggressivo come si vorrebbe.
  • Le voci memorizzate nella cache dei processori dei messaggi verranno rimosse quando viene raggiunto il limite per il numero di voci. 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

  • I dati di dimensioni superiori a 256 KB non verranno memorizzati 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 qualsiasi database appropriato per l'archiviazione di dati di grandi dimensioni

      OR

    • Compressione dei dati

Per approfondire