Usa il NCacheMessaggistica per la condivisione dei dati di runtime

Molte applicazioni oggi necessitano di condividere i dati tra loro in fase di runtime in modo asincrono. Inoltre, i database relazionali non forniscono un meccanismo efficiente di notifica degli eventi e le loro prestazioni e scalabilità rappresentano una delle principali preoccupazioni.

Le code di messaggi forniscono messaggi in sequenza e garantiscono la consegna dei messaggi, ma presentano anche problemi di prestazioni e scalabilità.

Il modo migliore è utilizzare una piattaforma di messaggistica in stile bus di messaggi che sia veloce e scalabile e fornisca anche il coordinamento della condivisione dei dati in stile produttore/consumatore. NCache è una cache distribuita estremamente veloce e scalabile e fornisce anche una funzionalità di messaggistica in stile bus di messaggi semplice e potente.

Con NCache messaggistica, puoi fare quanto segue:

  1. Eventi a livello di cache: NCache può notificare ai client l'aggiunta, l'inserimento e la rimozione di qualsiasi elemento nella cache o se la cache viene cancellata, se il client ha registrato interesse a ricevere tali eventi.
  2. Eventi a livello di oggetto: NCache può notificare ai clienti un aggiornamento di un articolo specifico e rimuovere se il cliente ha registrato interesse per esso.
  3. Eventi di query continue: NCache può monitorare un set di dati nella cache in base a criteri simili a SQL e quindi notificare ai client l'aggiunta, l'aggiornamento e la rimozione di elementi da questo set di dati ai client che hanno registrato interesse per esso.
  4. Eventi personalizzati avviati dall'applicazione: Le applicazioni possono attivare eventi personalizzati in NCache bus di messaggi in modo che altre applicazioni che hanno registrato interesse per esse possano essere notificate.
NCache Messaggistica per la condivisione dei dati di runtime

Tutte le applicazioni (sia .NET che Java) collegate NCache può usarlo come piattaforma di messaggistica e propagare eventi attraverso di essa ad altre applicazioni. Oppure possono chiedere alla cache di avvisarli quando accadono determinate cose nella cache.

Eventi a livello di cache

Gli eventi a livello di cache vengono attivati ​​ogni volta che viene aggiunto, aggiornato o rimosso qualcosa o se la cache viene cancellata dalla cache. Per impostazione predefinita, questi eventi sono disattivati ​​perché possono diventare piuttosto loquaci. Tuttavia, puoi abilitarli alcuni o tutti nella configurazione della cache e quindi fare in modo che la tua applicazione fornisca le funzioni di callback NCache so NCache chiama queste richiamate quando si verificano questi eventi. Di seguito sono riportati i tipi di richiamate che puoi registrare.


  CacheEventListener listener = new CacheEventListener();
  EnumSet<EventType> _eventType = EnumSet.noneOf(EventType.class);
  
  _eventType.add(EventType.ItemAdded);
  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);
	
  CacheEventDescriptor descripter = _cache.addCacheDataModificationListener(listener,
                                    _eventType, EventDataFilter.None);
                                  

Eventi a livello di oggetto

Questi eventi vengono attivati ​​in caso di aggiornamenti o rimozioni di elementi specifici, ma solo se uno o più client hanno registrato callback per loro. Di seguito sono riportati gli eventi e le callback a cui è possibile registrarsi.


  CacheEventListener listener = new CacheEventListener();
  EnumSet<EventType> _eventType = EnumSet.noneOf(EventType.class);

  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);

  _cache.addCacheDataModificationListener ("Key:1", listener,
                                           _eventType, EventDataFilter.None);

Interrogazione continua

La query continua è una potente funzionalità di NCache che ti consente di registrare una query simile a SQL con la cache e anche di specificare per quali eventi vorresti che i tuoi callback fossero chiamati da NCache.

NCache quindi crea una query continua nel cluster di cache e monitora tutte le operazioni di aggiunta, aggiornamento e rimozione per verificare se modificano gli elementi memorizzati nella cache che corrispondono a questi criteri di query continua. Se è così, allora NCache informa la tua applicazione client in merito.

Di seguito gli eventi a cui puoi iscriverti.


  ContinuousQuery cQuery1 = new ContinuousQuery(qry, indexTable);
  ContinuousQueryListener cqListener = new ContinuousQueryListener();
  EnumSet _eventType = EnumSet.noneOf(EventType.class);

  _eventType.add(EventType.ItemAdded);
  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);

  cQuery1.addDataModificationListener(cqListener, _eventType,
                                      EventDataFilter.DataWithMetaData);
 

Eventi personalizzati avviati dall'applicazione

NCache consente alle tue applicazioni di coordinarsi con altre in uno scenario produttore/consumatore o pubblicazione/abbonamento. Un'applicazione produce dati e quindi attiva un evento personalizzato in NCache messaggistica e una o più applicazioni sono in attesa di ricevere questo evento.

Ecco come si registra la tua applicazione per ricevere questi eventi personalizzati.


  public void OnApplicationEvent(object notifId, object data)
	{
	  ...
	} 
  _cache.CustomEvent += new CustomEventCallback(this.OnApplicationEvent);
  

Ed ecco come la tua applicazione attiva questo evento personalizzato NCache messaggistica.


  _cache.RaiseCustomEvent("NotificationID", DateTime.Now);
 

Cosa fare dopo?

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.