titolo: Notifiche eventi nella cache: una panoramica descrizione: Ricevi aggiornamenti della cache in tempo reale con notifiche eventi, consentendo la condivisione e la gestione fluida dei dati tra le applicazioni.
canonico: https://www.alachisoft.com/resources/docs/ncache/prog-guide/events-overview.html
Notifiche di eventi nella cache: una panoramica
In un paradigma di memorizzazione nella cache distribuita, l'applicazione client potrebbe dover ricevere una notifica sulla varietà di operazioni che si verificano nella cache. NCache può generare diversi tipi di eventi mentre le applicazioni client possono registrarsi per eventi di interesse
Note:
Questa funzione è disponibile solo in NCache Enterprise.
Ecco alcuni punti chiave relativi agli eventi nella cache:
- Un evento viene generato solo se un'applicazione client è stata registrata per esso.
- Un evento viene pubblicato solo per i clienti abbonati.
- La cache determina quando viene generato un evento e il client determina l'azione da intraprendere in risposta a un evento.
- Un client può registrarsi per più eventi e può anche gestire più eventi da più cache.
Note:
Un'applicazione non sarà in grado di ricevere eventi a meno che non si registri nella cache utilizzando la chiamata API di registrazione eventi specifica.
Importanza delle notifiche di eventi nella cache
Molte applicazioni oggi devono condividere i dati in modo asincrono tra loro in fase di esecuzione per garantire l'integrità dei dati. Inoltre, devono aggiornare lo stato dei dati o sincronizzare l'istantanea dei dati con lo stato lato server. Pertanto, l'applicazione necessita di un meccanismo per monitorare lo stato dei dati con il server. Le notifiche degli eventi forniscono questo meccanismo per notificare all'applicazione client ogni volta che i dati vengono modificati nella cache.
Quindi, gli eventi lo consentono condivisione dei dati di runtime tra applicazioni separate o moduli separati della stessa applicazione. Inoltre, il recupero dei dati basato sugli eventi è supportato da NCache consente alle applicazioni client di ricevere dati senza alcuna richiesta esplicita di recupero dati al server cache.
Eventi in NCache
Gli eventi possono essere generati per attività a livello di cache specifiche per dati o operazioni di gestione. Qui classifichiamo gli eventi e discutiamo i dettagli rilevanti.
Eventi specifici dei dati
Come indica il nome, questi eventi vengono attivati quando i dati nella cache vengono modificati a causa di aggiungere, update, o rimuovere operazioni. Oltre a queste operazioni CRUD di base, gli eventi specifici dei dati vengono attivati anche quando i dati vengono aggiunti, aggiornati o rimossi nella cache a causa di Caricatore/aggiornamento di avvio della cache ed Fonte di supporto.
Per registrare questi eventi per la notifica, il MessagingService.RegisterCacheNotification
viene utilizzato il metodo. Allo stesso modo, le notifiche specifiche dei dati possono essere facilmente annullate se non più necessarie, utilizzando il file MessagingService.UnRegisterCacheNotification
metodo.
È necessario specificare l'appropriato EventType
durante la registrazione per eventi specifici dei dati utilizzando Tipo di evento enum. Le seguenti notifiche possono essere attivate in base alla registrazione EventType
:
Aggiungi notifica: La notifica di aggiunta viene attivata quando il file
ItemAdded
il tipo di evento viene registrato e un nuovo elemento viene aggiunto alla cache.Notifica di aggiornamento: La notifica di aggiornamento viene attivata quando
ItemUpdated
il tipo di evento viene registrato e un elemento esistente viene aggiornato nella cache.Rimuovi notifica: La notifica di rimozione viene attivata quando il file
ItemRemoved
il tipo di evento viene registrato e un elemento viene rimosso dalla cache.
Puoi anche controllare le informazioni restituite durante l'esecuzione di un evento utilizzando EventDataFilter che viene ulteriormente discusso in Filtri per eventi .
Gli eventi specifici dei dati possono essere ulteriormente classificati come segue:
Eventi a livello di cache
Eventi a livello di cache sono eventi generali per la cache che vengono attivati all'esecuzione di Aggiungi, Aggiornanento, o Rimuovere operazioni sui dati della cache. Lo scopo è notificare a diversi client ogni operazione eseguita sulla cache.
avvertimento
Gli eventi a livello di cache potrebbero ridurre le prestazioni dell'applicazione quando le notifiche vengono registrate per tutte le operazioni sull'intero set di dati della cache.
Per impostazione predefinita, gli eventi a livello di cache sono disabilitati (ad eccezione dell'operazione di cancellazione della cache) per qualsiasi configurazione della cache e devono essere abilitati affinché gli eventi vengano pubblicati utilizzando il NCache Centro di gestione.
Eventi a livello di oggetto
Eventi a livello di oggetto può essere utile quando si desidera ricevere notifiche su un set limitato di dati piuttosto che su ogni operazione eseguita sulla cache. Ad esempio, se la cache contiene una grande quantità di dati e riceve una notifica ogni volta che si verifica una modifica nel set di dati, ciò causa un sovraccarico e le prestazioni dell'applicazione ne risentono.
Note:
Per prestazioni migliori, puoi registrare le notifiche solo per il set di dati di interesse.
La cache sarà responsabile del monitoraggio delle modifiche per le chiavi specificate. Poiché il set di dati selezionato esiste già nella cache, gli eventi a livello di elemento vengono ricevuti solo durante l'operazione di aggiornamento o rimozione. Le applicazioni registrano metodi di callback per una chiave specifica nella cache utilizzando chiamate API e ricevono una notifica quando la chiave viene aggiornata o rimossa dalla cache. Queste notifiche vengono inviate in modo asincrono al client, quindi non vi è alcun sovraccarico sulle attività del client.
Note:
Poiché gli eventi a livello di elemento sono registrati per il set di dati già nella cache, non è possibile ricevere la notifica di aggiunta.
Eventi a livello di gestione
Eventi a livello di gestione può registrarsi per ricevere una notifica quando viene eseguita un'operazione di gestione sul cluster di cache utilizzando il Servizio di notifica interfaccia.
Questi eventi possono essere utilizzati per la convalida per verificare se le operazioni continuano o meno nella cache. Ad esempio, il client è un'applicazione multi-thread in cui un thread è dedicato all'inserimento di elementi a una velocità costante. Se la cache viene interrotta durante l'inserimento, il file NCache il cliente lancerà OperationFailedException
. Per evitare che venga generata l'eccezione, il thread deve intraprendere l'azione appropriata all'arresto della cache. Ciò può essere ottenuto semplicemente registrandosi per un evento contro l'azione di arresto della cache.
Questo esempio si applica anche alle notifiche di svuotamento della cache se il thread dell'applicazione client convalida le operazioni durante l'esecuzione mentre la cache viene svuotata. Tutte le convalide falliranno se l'applicazione client non considera un evento di cancellazione della cache.
Le seguenti notifiche vengono attivate quando vengono eseguite operazioni di gestione sulla cache:
Notifica di cancellazione della cache: La notifica di svuotamento della cache viene attivata quando la cache viene svuotata.
Notifica cache interrotta: La notifica di arresto della cache viene attivata quando la cache viene arrestata. Se un'applicazione continua a eseguire operazioni quando la cache viene arrestata senza sapere che la cache è stata arrestata, verrà generata un'eccezione per le operazioni eseguite.
Notifica di adesione al membro: La notifica di unione dei membri viene attivata quando un membro si unisce al cluster. Un amministratore della cache o un utente che monitora lo stato della cache durante le operazioni potrebbe automatizzare le proprie attività per monitorare lo stato del cluster. Pertanto, se un membro si unisce al cluster, l'evento dovrebbe essere gestito per prevenire qualsiasi interruzione nelle attività automatizzate.
Notifica di sinistra del membro: La notifica di abbandono del membro viene attivata quando un membro lascia il cluster.
Eventi di attività del cliente
Gli eventi di attività del client notificano la connessione/disconnessione dei client. Ogni client connesso a una cache in cluster può iscriversi a questi eventi per ricevere notifiche sugli eventi di connessione/disconnessione di altri client.
È inoltre possibile specificare il periodo di conservazione, ovvero il tempo trascorso il quale un client disconnesso viene considerato disconnesso e viene attivato il relativo evento di disconnessione. Se un client si riconnette entro il periodo di conservazione, il relativo evento di disconnessione non viene attivato.
Questo per compensare eventuali disconnessioni accidentali che si verificano a causa di reti difettose dal momento che il NCache il client si riconnette automaticamente a tali reti senza interrompere le operazioni del client. Si noti che questo non si applica ai client che eliminano e si reinizializzano manualmente.
Devi effettuare l' abilitare le notifiche di attività del client in NCache Centro di gestione prima dell'uso.
Filtri dei dati degli eventi
NCache fornisce EventDataFilter
per controllare la quantità di informazioni restituite all'esecuzione di eventi specifici dei dati. I tipi di filtri di eventi sono spiegati di seguito.
avvertimento
Il filtro dei dati degli eventi deve essere impostato con cura per evitare un consumo non necessario della larghezza di banda della rete.
Nessuna
Questo filtro restituisce solo le chiavi interessate dall'operazione nella notifica dell'evento. Viene utilizzato se l'applicazione è interessata solo a sapere quali chiavi sono state interessate. Ad esempio, un sito di e-commerce vuole sapere quali codici Product Key sono stati aggiunti e non i valori stessi.
Metadati
Con questo filtro, le chiavi interessate insieme ai relativi metadati vengono restituite nella notifica dell'evento. I metadati restituiti includono il gruppo, priorità degli elementi della cache, scadenza, CacheItemVersion, Opzioni di risincronizzazione, CacheItemRimosso Motivoe Tipo di voce. Queste informazioni potrebbero essere richieste dall'utente. Ad esempio, quando un'applicazione vuole sapere quali chiavi sono state rimosse dalla cache e a quali gruppi appartenevano.
Dati con metadati
Questo filtro restituisce le chiavi insieme agli elementi memorizzati nella cache e ai relativi metadati associati. Questo può essere utilizzato nei casi in cui un'applicazione deve elaborare i dati modificati. Ad esempio, un'applicazione bancaria potrebbe richiedere di sapere quali informazioni del cliente sono state modificate. Pertanto, può registrare le notifiche per le operazioni di aggiornamento degli elementi con questo filtro in modo che anche la chiave dell'elemento e l'elemento modificato vengano restituiti all'utente una volta attivato l'evento.
Usando il DataWithMetadata
il filtro salva un viaggio quando recupera nuovamente gli elementi con il Ottieni API. Tuttavia, questo filtro deve essere utilizzato laddove necessario, poiché potrebbe causare un sovraccarico della rete quando la quantità di dati restituiti è enorme.
avvertimento
In caso di disconnessione del client, gli eventi non vengono registrati durante l'intervallo di tempo di disconnessione del client.
Topologia Comportamento saggio
Le notifiche degli eventi vengono attivate in base alla topologia della cache utilizzata. Il comportamento topologico per le notifiche degli eventi è descritto come segue:
Topologia speculare: Nella Topologia Mirror, un nodo attivo del cluster è responsabile della notifica dell'evento al client.
Topologia replicata: Nella topologia replicata, il nodo del cluster connesso al client è responsabile dell'invio delle notifiche degli eventi.
Topologia di replica delle partizioni: Nella topologia Partition-Replica, gli eventi vengono attivati dai nodi attivi. Il nodo in cui risiedono i dati basati su criteri è responsabile delle notifiche degli eventi.
Topologia partizionata: Nella topologia partizionata, gli eventi vengono attivati da tutti i nodi. Il nodo in cui risiedono i dati basati su criteri è responsabile delle notifiche degli eventi.
Vedere anche
.NETTO: Alachisoft.NCache.Eventi.di.runtime spazio dei nomi.
Giava: com.alachisoft.ncache.eventi spazio dei nomi.
Node.js: EventCacheItem classe.
Pitone: ncache.runtime.caching.events classe.