Use NCache's Messaging para compartilhamento de dados em tempo de execução

Muitos aplicativos hoje precisam compartilhar dados entre si em tempo de execução de forma assíncrona. Além disso, os bancos de dados relacionais não fornecem um mecanismo eficiente de notificação de eventos e seu desempenho e escalabilidade são uma grande preocupação.

As filas de mensagens fornecem mensagens sequenciadas e garantem a entrega de mensagens, mas também apresentam problemas de desempenho e escalabilidade.

A melhor maneira é usar uma plataforma de mensagens estilo barramento de mensagens que seja rápida e escalonável e que também forneça coordenação de compartilhamento de dados no estilo produtor/consumidor. NCache é um cache distribuído extremamente rápido e escalonável e também fornece um recurso de mensagens simples e poderoso no estilo de barramento de mensagens.

Com o NCache mensagens, você pode fazer o seguinte:

  1. Eventos de nível de cache: NCache pode notificar os clientes sobre a adição, inserção e remoção de qualquer item no cache ou se o cache for limpo, se o cliente tiver interesse registrado em receber tais eventos.
  2. Eventos de nível de item: NCache pode notificar os clientes sobre uma atualização de item específico e remover se o cliente tiver interesse registrado nele.
  3. Eventos de consulta contínua: NCache pode monitorar um conjunto de dados no cache com base em critérios semelhantes a SQL e, em seguida, notificar os clientes para adicionar, atualizar e remover itens desse conjunto de dados para clientes que registraram interesse nele.
  4. Eventos personalizados iniciados pelo aplicativo: Os aplicativos podem disparar eventos personalizados em NCache barramento de mensagens para que outros aplicativos que tenham interesse registrado neles possam ser notificados.
NCache Mensagens para compartilhamento de dados em tempo de execução

Todos os aplicativos (sejam .NET ou Java) conectados a NCache pode usá-lo como uma plataforma de mensagens e propagar eventos por meio dele para outros aplicativos. Ou eles podem pedir ao cache para notificá-los quando certas coisas acontecerem no cache.

Eventos de nível de cache

Os eventos de nível de cache são acionados sempre que algo é adicionado, atualizado ou removido ou se o cache é limpo do cache. Por padrão, esses eventos são desativados porque podem ficar bastante falantes. Mas você pode habilitar alguns ou todos eles na configuração de cache e então fazer com que seu aplicativo forneça funções de retorno de chamada para NCache so NCache chama esses retornos de chamada quando esses eventos ocorrem. Abaixo estão os tipos de retornos de chamada que você pode 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 nível de item

Esses eventos são acionados em atualizações ou remoções de itens específicos, mas somente se um ou mais clientes registraram retornos de chamada para eles. Abaixo estão os eventos e callbacks que você pode 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 Contínua

A Consulta Contínua é um recurso poderoso do NCache que permite registrar uma consulta do tipo SQL com o cache e também especificar para quais eventos você gostaria que seus retornos de chamada fossem chamados por NCache.

NCache em seguida, cria uma Consulta Contínua no cluster de cache e monitora todas as operações de adição, atualização e remoção para ver se elas modificam itens em cache que correspondem a esses critérios de Consulta Contínua. Se sim, então NCache notifica seu aplicativo cliente sobre isso.

Abaixo estão os eventos que você pode se inscrever.


  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 pelo aplicativo

NCache permite que seus aplicativos sejam coordenados com outros em um cenário de produtor/consumidor ou de publicação/assinatura. Um aplicativo produz dados e, em seguida, dispara um evento personalizado em NCache mensagens e um ou mais aplicativos estão esperando para receber este evento.

Veja como seu aplicativo se registra para receber esses eventos personalizados.


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

E aqui está como seu aplicativo aciona esse evento personalizado em NCache Mensagens.


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

O que fazer a seguir?

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.