Anti-pattern: archivia 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 runtime per la persistenza e il recupero più rapido.

  • I dati vengono inizialmente archiviati nella cache in memoria del processore di messaggi, detta 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 alcun limite rigido 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 consigliata è di 256 kB per ottenere prestazioni ottimali.

Antipattern

Questo particolare antipattern parla delle implicazioni derivanti dal superamento delle attuali restrizioni relative alle dimensioni della cache in Apigee.

Quando vengono memorizzati nella cache dati superiori a 256 kB, 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 originale (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 porre maggiore stress sulle risorse della piattaforma. In questo modo, la memoria cache L1 viene riempita più velocemente e di conseguenza meno spazio disponibile per altri dati. Di conseguenza, non sarà possibile memorizzare i dati nella cache quanto si vuole.
  • Le voci memorizzate nella cache dei processori di messaggi vengono rimosse al raggiungimento del limite del numero di voci. Questo fa sì che i dati vengano nuovamente recuperati dall'origine originale sui rispettivi processori di messaggi.

Due diagrammi di flusso.
  Una per una dimensione inferiore a 512 kB, che mostra i flussi tra proxy API e processori di messaggi e i flussi tra processori di messaggi e cache L2 per l'archiviazione permanente. Uno, per dimensioni> 512 kB, che mostra i flussi tra proxy API e processori di messaggi e i flussi tra processori di messaggi e dati/risposta non archiviati nella cache L2.

Impatto

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

Best practice

  • È preferibile memorizzare dati di dimensioni inferiori a 256 kB nella cache per ottenere prestazioni ottimali.
  • Se è necessario archiviare dati superiori a 256 kB, considera quanto segue:
    • Utilizzo di database appropriati per l'archiviazione di dati di grandi dimensioni

      OR

    • Compressione dei dati

Per approfondire