Antipattern: memorizzare 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 esecuzione per la persistenza e un recupero più rapido.

  • I dati vengono inizialmente archiviati nella memoria cache del processore di messaggi, chiamata cache L1.
  • La cache L1 è limitata dalla quantità di memoria riservata come percentuale della memoria JVM.
  • 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 un limite fisso per il 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 un rendimento ottimale.

Antipattern

Questo particolare antipattern illustra le implicazioni del superamento delle attuali limitazioni di dimensione 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 ciascun Message Processor devono recuperare i dati indipendentemente 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 mettere a dura prova le risorse della piattaforma. 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. In questo modo, i dati vengono recuperati di nuovo dall'origine originale sui rispettivi elaboratori di messaggi.

Due diagrammi di flusso.
  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 la cache L2 dell&#39;archiviazione permanente. Uno per dimensioni> 512 KB che mostraflussi tra il proxy API e i processori di messaggi e flussi tra i processori di messaggi e i dati/la risposta
  non memorizzati nella cache L2.

Impatto

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

Best practice

  • Per ottenere prestazioni ottimali, è preferibile memorizzare in cache i dati di dimensioni inferiori a 256 KB.
  • Se è necessario archiviare dati di dimensioni superiori a 256 KB, valuta la possibilità di:
    • Utilizzo di qualsiasi database appropriato per l'archiviazione di dati di grandi dimensioni

      OR

    • Compressione dei dati

Per approfondire