In un ambiente di cache distribuita, possono verificarsi scenari in cui determinati dati dovrebbero essere presenti nella cache affinché l'applicazione possa essere utilizzata immediatamente dopo l'inizio dell'esecuzione. Inizialmente, all'avvio, una cache non contiene dati che possono causare costosi viaggi all'origine dati per ottenere dati, con un impatto sulle prestazioni dell'applicazione. Pertanto, diventa importante che la cache utilizzata per archiviare i dati sia precaricata con alcuni dati di riferimento prima che l'applicazione inizi a utilizzarli.
Per questo scopo, NCache fornisce un Caricatore di avvio della cache funzione che consente agli utenti di implementare un'interfaccia per precaricare i dati di riferimento desiderati nella cache non appena la cache si avvia. Di conseguenza, l'applicazione utente non avrà perdite di cache e viaggi di origine dati minori, ottenendo così prestazioni più veloci.
Componenti del caricatore di avvio della cache
Ogni volta che la cache si avvia, Cache Startup Loader recupera automaticamente i dati dall'origine dati affinché l'utente possa utilizzarli in anticipo. Pertanto, prima di passare a come funziona Cache Loader, l'utente dovrebbe conoscere alcune delle sue caratteristiche che sono spiegate di seguito.
- Dataset: Un set di dati consente all'utente di raggruppare diversi tipi di dati in modo che possano caricarli o aggiornarli separatamente a intervalli o eventi diversi per ottenere il parallelismo.
- Servizio caricatore: È responsabile della gestione delle attività e del caricamento dei dati dall'origine dati nella cache all'avvio.
- Tentativi del caricatore di cache: Nel caso in cui un'operazione fallisca durante il caricamento della cache, tali operazioni non riuscite possono essere eseguite nuovamente prima di passare a quella successiva tramite l'opzione del numero di tentativi configurata tramite NCache Gestore web.
NCache Dettagli Caricatore cache e documenti di aggiornamento NCache Docs
Come implementare il caricatore di avvio della cache?
Per abilitare Cache Startup Loader, l'utente, prima di tutto, deve implementare il ICacheLoader interfaccia. NCache utilizza questa interfaccia con i metodi spiegati di seguito per caricare i dati dall'origine dati nella cache all'avvio della cache.
Inizializza il caricatore di avvio della cache
Dentro viene chiamato su Cache Startup per passare i parametri configurati in modo che l'utente possa usarlo di conseguenza per inizializzare la propria cache e l'origine dati. Basta configurare la connessione aprendo una connessione al database come SQL e inizializzare una cache con il nome dato come l'implementazione di esempio di seguito per .NET e Java.
1 2 3 4 5 6 7 8 9 |
public void Init(IDictionary<string, string> parameters, string cacheName) { cache = CacheManager.GetCache(cacheName); connectionString = parameters.ContainsKey("ConnectionString") ? parameters["ConnectionString"] : null; if (connectionString != null) { connection = new SqlConnection(connectionString); } } |
1 2 3 4 5 6 7 8 |
public void init(Map<String, String> parameters, String cacheName) { cache = CacheManager.getCache(cacheName); connectionString = parameters.containsKey("ConnectionString") ? parameters.get("ConnectionString") : null; if (connectionString != null) { connection = DriverManager.getConnection(connectionString); } } |
Carica dati all'avvio della cache
L'implementazione di esempio seguente per .NET e Java del metodo Carica set di dati all'avvio of ICacheLoader
l'interfaccia recupera i dati dall'origine dati e li aggiunge alla cache all'avvio della cache per precaricare la cache. Restituisce un contesto utente che contiene le informazioni sui dati caricati nella cache.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public object LoadDatasetOnStartup(string dataset) { // Create a list of datasets to load at cache startup IList<object> datasetToLoad; switch (dataSet.ToLower()) { // If dataset is "products", fetch products from data source to load in cache case "products": datasetToLoad = FetchProductsFromDataSource(); // Insert fetched product in the cache foreach (var product in datasetToLoad) { string key = $"ProductID:{product.Id}"; cache.Insert(key, product); } break; // You can add more cases for different datasets as per requirement and fetch them from the data source default: // Invalid dataset } // User context is the time at which datasets were loaded in the cache object userContext = DateTime.Now; return userContext; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public Object loadDatasetsOnStartup(String dataset) { // Create a list of datasets to load at cache startup List<Object> datasetToLoad; switch (dataset.toLowerCase()) { // If dataset is "products", fetch products from data source and add in cache case "products": datasetToLoad = fetchProductsFromDataSource(); // Insert fetched product in the cache for (var product : datasetToLoad) { string key = "ProductID:" + product.productID; cache.insert(key, product); } break; // You can add more cases for different datasets as per the requirement and fetch them from data source default: // Invalid dataset } // User context is the time at which datasets were loaded in the cache Object userContext = LocalDateTime.now(); return userContext; } |
Proprio come il precaricamento dei dati è una cosa importante da fare, ci può essere un'enorme possibilità che i dati caricati diventino obsoleti. I dati già caricati nella cache potrebbero essere alterati a causa di qualsiasi modifica che si verifica nell'origine dati, motivo per cui i dati precaricati potrebbero diventare obsoleti. Per mantenere aggiornati questi dati caricati, NCache fornisce una caratteristica di Aggiornamento della cache che utilizza l'implementazione di Cache Loader per mantenere i dati caricati aggiornati e sincronizzati con l'origine dati.
NCache Dettagli Configura il caricatore di cache e l'aggiornamento Documenti di aggiornamento della cache
Configura il caricatore della cache tramite NCache Web Manager
Una volta che l'utente ha implementato Cache Startup Loader, può configurarlo tramite NCache Web Manager. Di seguito è riportato come si può fare.
Conclusione!
Come si può vedere, NCache fornisce ai suoi utenti una potente funzionalità Cache Startup Loader per precaricare i dati nella cache invece del follow-up manuale. Quindi, tieni duro NCache e acquisisci tutte le sue straordinarie funzionalità per prestazioni e scalabilità delle applicazioni più rapide!