L'avvento dei sistemi di memorizzazione nella cache distribuita ha risolto il problema del sovraccarico e della lentezza dei database. Oggi queste cache distribuite possono gestire il carico di milioni di transazioni di dati che avvengono al secondo, ma c'è un problema.
La maggior parte delle applicazioni di livello aziendale si basa su modifiche che hanno luogo in alcune porzioni specifiche di questi dati. Queste applicazioni devono prendere decisioni aziendali critiche in base a queste modifiche e poiché la dimensione di questi dati è di migliaia di Gigabyte, il monitoraggio di modifiche specifiche diventa un compito enorme.
Per far fronte a questo problema NCache, una cache distribuita in memoria porta con sé una funzionalità nota come Interrogazione continua. Questo blog spiegherà come funziona la query continua, come puoi configurarla NCache, e quali vantaggi trarrai da ciò.
NCache Dettagli NCache Docs Scaricare NCache
Query continua per monitorare le modifiche NCache
La funzione di interrogazione continua di NCache consente di tenere traccia delle modifiche in corso in un set di dati selettivo all'interno del cluster di cache distribuita. Questo set di dati selettivo all'interno della cache è definito tramite SQL OQL (linguaggio di query degli oggetti) interrogazioni. Le modifiche che avvengono all'interno di questo set di dati vengono propagate alle applicazioni (che hanno registrato callback per eventi) sotto forma di Eventi a livello di cache.
Indipendentemente dalle dimensioni del tuo cluster di cache, ti verranno notificate solo le modifiche che si verificano nel set di dati che hai definito e quindi registrato nella cache. Questo è anche il modo in cui Continuous Query ottiene il disaccoppiamento delle applicazioni poiché i dati vengono filtrati tramite query OQL. Questo disaccoppiamento assicura che le applicazioni non si sovrappongano tra loro.
Va inoltre notato che la query continua di per sé non modifica i dati dell'applicazione. La query continua fornisce invece un meccanismo per il monitoraggio e la condivisione dei dati tra le applicazioni in fase di esecuzione tramite eventi. Lo sviluppatore assicura quindi che cosa fanno le applicazioni con questi dati registrando i callback per gli eventi di query continua e definendo la loro logica di business.
Interrogazione continua SQL dentro NCache Notifiche di eventi nella cache
Configurazione della query continua in NCache
È facile configurare Query continua in NCache. Devi solo seguire un processo in due fasi. Dopo aver seguito questi passaggi, la tua applicazione sarà in grado di ricevere notifiche rispetto al set di dati da te definito e agire di conseguenza.
Questi due passaggi sono i seguenti:
Passaggio 1: registra la richiamata per gli eventi
È necessario registrare una richiamata per eventi a livello di cache: Articolo aggiunto, Articolo Aggiornato, or Articolo rimosso. Attraverso questi eventi, definirai la tua logica aziendale che determinerà cosa dovrebbe fare la tua applicazione se uno di questi eventi viene attivato.
Nell'esempio di codice seguente viene registrata una richiamata per l'evento ItemAdded.
1 2 3 4 5 6 7 8 9 |
static void QueryItemCallBack(string key, CQEventArg arg) { switch (arg.EventType) { case EventType.ItemAdded: Console.WriteLine(“Item has been added”); break; } } |
Passaggio 2: registra query e notifiche
Dopo aver registrato le richiamate per gli eventi, è necessario creare una query continua che specificherà i criteri per il set di dati risultante. Gli eventi verranno attivati in base a questa query continua. Successivamente, le richiamate vengono registrate con la query. Una volta eseguita questa operazione, la query viene registrata sul server cache utilizzando il file RegistratiCQ metodo.
L'esempio di codice seguente mostra come tutto ciò accade.
1 2 3 4 5 6 7 8 9 10 11 12 |
string query = "SELECT $VALUE$ FROM FQN.Product WHERE Category = ?"; var queryCommand = new QueryCommand(query); queryCommand.Parameters.Add("Category", "Beverages"); // Create Continuous Query var cQuery = new ContinuousQuery(queryCommand); // Item add notification cQuery.RegisterNotification(new QueryDataNotificationCallback(QueryItemCallBack), EventType.ItemAdded, EventDataFilter.None); cache.MessagingService.RegisterCQ(cQuery); |
Annulla la registrazione della query continua
NCache ti dà la possibilità di annullare la registrazione delle notifiche dalla Query continua quando non ne hai più bisogno. Questo viene fatto usando il Notifica di annullamento della registrazione metodo.
Nell'esempio di codice seguente, una notifica di evento non è registrata da una query continua.
1 |
cQuery.UnRegisterNotification(new QueryDataNotificationCallback(QueryItemCallBack), EventType.ItemAdded); |
NCache ti dà anche la possibilità di annullare la registrazione della query continua stessa dal cluster di cache. Non è necessario mantenerlo in esecuzione all'interno della cache quando non è più necessario poiché consuma risorse. Per annullare la registrazione di una query continua dalla cache, NCache ti dà la Annullare la registrazione CQ metodo.
Nell'esempio di codice seguente, una query continua non è registrata dal server di cache.
1 |
cache.MessagingService.UnRegisterCQ(cQuery); |
NCache: La migliore soluzione là fuori
Quando si tratta di applicazioni aziendali grandi e complesse, il perfezionamento dei dati è una sfida enorme. Streaming Processing in NCache risponde a questa sfida convertendo dati grandi e complessi in flussi di dati per una facile elaborazione.
Un'applicazione popolare di Stream Processing è il Abbonato editore modello di NCache. Tuttavia, ciò comporta le seguenti limitazioni:
- I messaggi non vengono mantenuti dalle applicazioni una volta consegnati agli abbonati.
- Il filtraggio dei dati avviene sul lato client, rendendo l'architettura dell'applicazione più complessa.
La query continua risolve entrambi questi problemi nei seguenti modi:
- Mantenendo i dati all'interno della cache anche dopo l'elaborazione.
- Filtrando i dati tramite istruzioni OQL abbastanza semplici sul lato server anziché sul lato client. Ciò garantisce una semplice architettura dell'applicazione.
Interrogazione continua Streaming Processing Messaggistica Pub/Sub
Conclusione
NCache è una cache distribuita estremamente veloce, facile da scalare che gestisce i colli di bottiglia del database in modo efficiente ed efficace. Proprio come Query continua, Elaborazione flusso e Messaggistica Pub/Sub, NCache ha molte altre funzionalità ricche e potenti che dovresti provare. Queste caratteristiche forniscono risultati sia quantitativi che qualitativi. Provare NCache adesso!