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

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Apigee Edge 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 Message Processor, denominata cache L1.
  • La cache L1 è limitata dalla quantità di memoria riservata, espressa come percentuale della memoria JVM memoria.
  • Le voci memorizzate nella cache vengono poi rese persistenti nella cache L2, accessibile a tutti i Message Processor. Ulteriori dettagli sono disponibili nella sezione seguente.
  • La cache L2 non ha limiti rigidi sul numero di voci della cache, ma la dimensione massima della voce che può essere memorizzata nella cache è limitata a 256 KB. La dimensione della cache di 256 KB è la dimensione consigliata per prestazioni ottimali.

Antipattern

Questo antipattern specifico riguarda le implicazioni del superamento delle attuali restrizioni sulle dimensioni della cache all'interno della piattaforma Apigee Edge.

Quando i dati > 256 KB vengono memorizzati nella cache, le conseguenze sono le seguenti:

  • Le richieste API eseguite per la prima volta su ciascuno dei Message Processor devono recuperare i dati in modo indipendente dall'origine originale (policy o server di destinazione), poiché le voci > 256 KB non sono disponibili nella cache L2.
  • L'archiviazione di dati di dimensioni maggiori (> 256 KB) nella cache L1 tende a esercitare una maggiore pressione sulle risorse della piattaforma risorse. Di conseguenza, la memoria della cache L1 si riempie più rapidamente e, di conseguenza, è disponibile meno spazio per altri dati. Di conseguenza, non sarà possibile memorizzare i dati nella cache in modo aggressivo come si vorrebbe.
  • Le voci memorizzate nella cache dai Message Processor verranno rimosse quando viene raggiunto il limite del numero di voci. In questo modo, i dati vengono recuperati di nuovo dall'origine originale sui rispettivi Message Processor.

Due diagrammi di flusso.
  Uno per dimensioni<=256 KB che mostra i flussi tra il proxy API e i processori di messaggi
  e i flussi tra i processori di messaggi e la cache L2 di archiviazione permanente. Uno per dimensioni> 256 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/le risposte
  non memorizzati nella cache L2.

Impatto

  • I dati di dimensioni > 256 KB non verranno archiviati nella cache L2/persistente.
  • Le chiamate più frequenti all'origine originale (una policy o un server di destinazione) comportano un aumento della latenza per le richieste API.

Best practice

  • È preferibile archiviare i dati di dimensioni < 256 KB nella cache per ottenere prestazioni ottimali.
  • Se è necessario archiviare dati di dimensioni > 256 KB, valuta le seguenti opzioni:
    • Utilizzare un database appropriato per l'archiviazione di dati di grandi dimensioni

      OPPURE

    • Comprimere i dati

Per approfondire