Verwenden Sie die NCacheMessaging für die gemeinsame Nutzung von Laufzeitdaten

Viele Anwendungen müssen heute zur Laufzeit Daten asynchron miteinander teilen. Darüber hinaus bieten relationale Datenbanken keinen effizienten Mechanismus zur Ereignisbenachrichtigung und ihre Leistung und Skalierbarkeit stellen ein großes Problem dar.

Nachrichtenwarteschlangen stellen sequenzierte Nachrichten bereit und garantieren die Nachrichtenzustellung, weisen jedoch auch Leistungs- und Skalierbarkeitsprobleme auf.

Der beste Weg ist die Verwendung einer Messaging-Plattform im Message-Bus-Stil, die schnell und skalierbar ist und auch eine Koordinierung des Datenaustauschs im Producer/Consumer-Stil ermöglicht. NCache ist ein extrem schneller und skalierbarer verteilter Cache und bietet außerdem eine einfache und leistungsstarke Messaging-Funktion im Message-Bus-Stil.

Mit der NCache Mit der Nachrichtenübermittlung können Sie Folgendes tun:

  1. Ereignisse auf Cache-Ebene: NCache kann Kunden über das Hinzufügen, Einfügen und Entfernen von Elementen im Cache benachrichtigen oder wenn der Cache geleert wird, sofern der Kunde Interesse am Empfang solcher Ereignisse angemeldet hat.
  2. Ereignisse auf Artikelebene: NCache kann Kunden über die Aktualisierung eines bestimmten Artikels informieren und ihn entfernen, wenn der Kunde Interesse daran angemeldet hat.
  3. Kontinuierliche Abfrageereignisse: NCache kann einen Datensatz im Cache basierend auf SQL-ähnlichen Kriterien überwachen und dann Clients über das Hinzufügen, Aktualisieren und Entfernen von Elementen aus diesem Datensatz an Clients benachrichtigen, die Interesse daran angemeldet haben.
  4. Von der Anwendung initiierte benutzerdefinierte Ereignisse: Anwendungen können benutzerdefinierte Ereignisse auslösen NCache Message Bus, damit andere Anwendungen, die Interesse daran angemeldet haben, benachrichtigt werden können.
NCache Messaging für die gemeinsame Nutzung von Laufzeitdaten

Alle Anwendungen (ob .NET oder Java), mit denen eine Verbindung besteht NCache kann es als Messaging-Plattform verwenden und Ereignisse darüber an andere Anwendungen weitergeben. Oder sie können den Cache bitten, sie zu benachrichtigen, wenn bestimmte Dinge im Cache passieren.

Ereignisse auf Cache-Ebene

Ereignisse auf Cache-Ebene werden immer dann ausgelöst, wenn etwas hinzugefügt, aktualisiert oder entfernt wird oder wenn der Cache gelöscht wird. Standardmäßig sind diese Ereignisse deaktiviert, da sie sehr gesprächig werden können. Sie können jedoch einige oder alle davon in der Cache-Konfiguration aktivieren und Ihre Anwendung dann Rückruffunktionen bereitstellen lassen NCache so NCache ruft diese Rückrufe auf, wenn diese Ereignisse auftreten. Nachfolgend finden Sie die Arten von Rückrufen, die Sie registrieren können.


  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);
                                  

Ereignisse auf Artikelebene

Diese Ereignisse werden bei bestimmten Elementaktualisierungen oder -entfernungen ausgelöst, jedoch nur, wenn ein oder mehrere Clients Rückrufe für sie registriert haben. Nachfolgend finden Sie die Veranstaltungen und Rückrufe, die Sie anmelden können.


  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);

Kontinuierliche Abfrage

Continuous Query ist eine leistungsstarke Funktion von NCache Dadurch können Sie eine SQL-ähnliche Abfrage im Cache registrieren und außerdem angeben, für welche Ereignisse Ihre Rückrufe aufgerufen werden sollen NCache.

NCache Anschließend erstellt er eine kontinuierliche Abfrage im Cache-Cluster und überwacht alle Vorgänge zum Hinzufügen, Aktualisieren und Entfernen, um festzustellen, ob sie zwischengespeicherte Elemente ändern, die diesen Kriterien für die kontinuierliche Abfrage entsprechen. Wenn ja, dann NCache benachrichtigt Ihre Client-Anwendung darüber.

Nachfolgend finden Sie die Veranstaltungen, für die Sie sich anmelden können.


  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);
 

Von der Anwendung initiierte benutzerdefinierte Ereignisse

NCache ermöglicht die Koordinierung Ihrer Anwendungen mit anderen in einem Producer/Consumer- oder Publish/Subscribe-Szenario. Eine Anwendung erzeugt Daten und löst dann ein benutzerdefiniertes Ereignis aus NCache Messaging und eine oder mehrere Anwendungen warten auf den Empfang dieses Ereignisses.

So registriert sich Ihre Anwendung für den Empfang dieser benutzerdefinierten Ereignisse.


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

Und so löst Ihre Anwendung dieses benutzerdefinierte Ereignis aus NCache Messaging


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

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.