Uso NCache's Messaging para uso compartido de datos en tiempo de ejecución

Hoy en día, muchas aplicaciones necesitan compartir datos entre sí en tiempo de ejecución de forma asincrónica. Además, las bases de datos relacionales no proporcionan un mecanismo eficiente de notificación de eventos y su rendimiento y escalabilidad son una preocupación importante.

Las colas de mensajes proporcionan mensajes secuenciados y garantizan la entrega de mensajes, pero también tienen problemas de rendimiento y escalabilidad.

La mejor manera es utilizar una plataforma de mensajería estilo bus de mensajes que sea rápida y escalable y que también proporcione coordinación para compartir datos al estilo productor/consumidor. NCache es un caché distribuido extremadamente rápido y escalable y también proporciona una capacidad de mensajería estilo bus de mensajes simple y potente.

Con NCache mensajería, puede hacer lo siguiente:

  1. Eventos de nivel de caché: NCache puede notificar a los clientes sobre la adición, inserción y eliminación de cualquier elemento en el caché o si se borra el caché, si el cliente ha registrado interés en recibir dichos eventos.
  2. Eventos a nivel de artículo: NCache puede notificar a los clientes sobre la actualización de un artículo específico y eliminarlo si el cliente ha registrado interés en él.
  3. Eventos de consulta continua: NCache puede monitorear un conjunto de datos en el caché en función de criterios similares a SQL y luego notificar a los clientes para agregar, actualizar y eliminar elementos de este conjunto de datos a los clientes que han registrado interés en él.
  4. Eventos personalizados iniciados por la aplicación: Las aplicaciones pueden activar eventos personalizados en NCache bus de mensajes para que otras aplicaciones que hayan registrado interés en ellas puedan ser notificadas.
NCache Mensajería para uso compartido de datos en tiempo de ejecución

Todas las aplicaciones (ya sean .NET o Java) conectadas a NCache puede usarlo como una plataforma de mensajería y propagar eventos a través de él a otras aplicaciones. O bien, pueden pedirle al caché que les notifique cuando suceden ciertas cosas en el caché.

Eventos de nivel de caché

Los eventos de nivel de caché se activan cada vez que se agrega, actualiza o elimina algo, o si la memoria caché se borra de la memoria caché. De forma predeterminada, estos eventos están desactivados porque pueden volverse bastante conversadores. Sin embargo, puede habilitar algunos o todos ellos en la configuración de caché y luego hacer que su aplicación proporcione funciones de devolución de llamada para NCache so NCache llama a estas devoluciones de llamada cuando ocurren estos eventos. A continuación se muestran los tipos de devoluciones de llamada que puede registrar.


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

Eventos de nivel de artículo

Estos eventos se activan en actualizaciones o eliminaciones de elementos específicos, pero solo si uno o más clientes han registrado devoluciones de llamada para ellos. A continuación se muestran los eventos y las devoluciones de llamada que puede registrar.


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

Consulta continua

Consulta continua es una característica poderosa de NCache que le permite registrar una consulta similar a SQL con el caché y también especificar para qué eventos desea que se llamen sus devoluciones de llamada NCache.

NCache luego crea una consulta continua en el clúster de caché y supervisa todas las operaciones de agregar, actualizar y eliminar para ver si modifican los elementos almacenados en caché que coinciden con este criterio de consulta continua. Si es así, entonces NCache notifica a su aplicación cliente al respecto.

A continuación se muestran los eventos en los que puede registrarse.


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

Eventos personalizados iniciados por la aplicación

NCache permite que sus aplicaciones se coordinen con otras en un escenario productor/consumidor o publicación/suscripción. Una aplicación produce datos y luego activa un evento personalizado en NCache mensajes y una o más aplicaciones están esperando para recibir este evento.

Así es como su aplicación se registra para recibir estos eventos personalizados.


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

Y así es como su aplicación activa este evento personalizado en NCache mensajería.


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

¿Qué hacer a continuación?

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.