Data caching significa saper gestire i criteri di memorizzazione dei dati nella cache. L’attività è fondamentale quando si tratta di garantire ai microservizi un facile accesso ai dati di cui hanno bisogno.
Data caching: a cosa serve e come funziona
Il data caching riduce il numero di viaggi che deve compiere un microservizio verso un server che ospita un database, evitando chiamate ridondanti ad altri microservizi. La memorizzazione nella cache può anche migliorare i livelli di disponibilità, dal momento che è ancora possibile ottenere dati dalla cache se un servizio non è attivo.
Memorizzazione nella cache: i punti di attenzione
Gli esperti suggeriscono alcune linee guida da seguire per una corretta gestione della cache: in particolare quando si tratta di quali e quanti dati vengono memorizzati. Per mantenere elevate le prestazioni dei microservizi, infatti, è molto importante evitare di sovraccaricare una cache con dati obsoleti o ridondati.
Determinare cosa tenere in memoria
Esistono due tipi di cache: preloaded e lazy loaded.
- Preloaded: nelle cache precaricate, i dati vengono popolati prima dell’inizio di un servizio (il che significa che sono pronti prima che un servizio lo richieda).
- Lazy loaded: nelle cache caricate più lentamente, i dati restano in attesa fino a che un servizio non ne faccia richiesta. I dati nella cache si attivano la prima volta che un servizio ne ha bisogno e tutte le richieste successive per lo stesso blocco di dati vengono gestite dalla cache.
A seconda della tipologia di applicazione che si sta programmando, lo sviluppatore deve scegliere quale di queste due strategie di data caching dei microservizi sia la più opportuna.
Ad esempio, un’applicazione di e-commerce potrebbe dover precaricare gli articoli utilizzati di frequente nella cache in modo che un nuovo ordine venga elaborato utilizzando un articolo già memorizzato. Tuttavia, è possibile che le applicazioni che non necessitano di accedere ai dati in questo modo possano essere lasciate nella cache a caricamento lento per evitare sovraccarichi di dati.
Impostare la condivisione della memoria
Quando i team memorizzano nella cache i dati di un’istanza del servizio, ogni istanza conserva la propria copia da utilizzare al bisogno. Questo tipo di memorizzazione è veloce, ma pone dei vincoli: in termini di archiviazione, infatti, è limitata alla memoria direttamente disponibile per il servizio. Nel momento in cui l’archiviazione è limitata, i team possono utilizzare la memorizzazione nella cache condivisa. Nella cache condivisa i dati sono condivisi tra le istanze dell’applicazione e tutti i servizi accedono alla stessa cache. Questo approccio è facilmente scalabile, dal momento che è possibile scalare i server in base alle effettive esigenze. In genere, questa cache è ospitata come un servizio separato, come mostrato nella Figura 1.
Decidere per quanto tempo conservare i dati
Se i dati cambiano, è necessario assicurarsi che i dati presenti nella cache siano sincronizzati con gli archivi dati correnti. I dati della cache possono diventare obsoleti dopo un certo periodo di tempo: questo impone di mantenere un controllo anche su questo aspetto, calcolando per quanto tempo si desidera che i dati restino nella cache.
Quando si parla di data caching è importante valutare l’opportunità di impostare una durata a tempo che, automaticamente, invalidi i dati e li rimuova dalla cache superato un determinato limite temporale. Una richiesta di dati scaduti comporterà una richiesta cache non riuscita, il che è accettabile purché le richieste non riuscite superino le richieste riuscite.