O advento dos sistemas de cache distribuído corrigiu o problema dos bancos de dados ficarem sobrecarregados e lentos. Hoje, esses caches distribuídos podem lidar com a carga de milhões de transações de dados que ocorrem por segundo, mas há um problema.
A maioria dos aplicativos de nível corporativo depende de alterações que ocorrem em algumas partes específicas desses dados. Esses aplicativos precisam tomar decisões críticas de negócios com base nessas alterações e, como o tamanho desses dados é de milhares de Gigabytes, o monitoramento de alterações específicas se torna uma tarefa enorme.
Para atender a este problema NCache, um cache distribuído na memória traz consigo um recurso conhecido como Consulta Contínua. Este blog explicará como a Consulta Contínua funciona, como você pode configurá-la em NCache, e quais benefícios você colherá ao fazê-lo.
NCache Adicionar ao carrinho NCache Docs Baixar NCache
Consulta Contínua para Monitorar Mudanças em NCache
O recurso de consulta contínua de NCache permite que você acompanhe as alterações que ocorrem em um conjunto de dados seletivo no cluster de cache distribuído. Esse conjunto de dados seletivo dentro do cache é definido por meio de SQL-like OQL (linguagem de consulta de objetos) consultas. As alterações que ocorrem neste conjunto de dados são propagadas para os aplicativos (que registraram retornos de chamada para eventos) na forma de Eventos de nível de cache.
Independentemente do tamanho do seu cluster de cache, você só será notificado sobre as alterações que ocorrem no conjunto de dados que você definiu e registrou no cache. É também assim que a Consulta Contínua alcança o desacoplamento de aplicativos à medida que os dados são filtrados por meio de consultas OQL. Esse desacoplamento garante que os aplicativos não se sobreponham.
Também deve ser observado que a Consulta Contínua em si não altera os dados do seu aplicativo. Em vez disso, a Consulta Contínua fornece um mecanismo para que os dados sejam monitorados e compartilhados entre os aplicativos em tempo de execução por meio de eventos. O desenvolvedor então garante o que os aplicativos fazem com esses dados registrando retornos de chamada para eventos de Consulta Contínua e definindo sua lógica de negócios.
Consulta Contínua SQL em NCache Notificações de eventos de cache
Configurando a Consulta Contínua em NCache
É fácil configurar a Consulta Contínua em NCache. Você só precisa seguir um processo de duas etapas. Depois de seguir essas etapas, seu aplicativo poderá receber notificações sobre o conjunto de dados definido por você e agir de acordo.
Essas duas etapas são as seguintes:
Etapa 1: registrar retorno de chamada para eventos
Você precisa registrar um retorno de chamada para eventos de nível de cache: Item adicionado, ItemAtualizado, or Item removido. Por meio desses eventos, você definirá sua lógica de negócios que ditará o que seu aplicativo deve fazer se um desses eventos for acionado.
No exemplo de código a seguir, um retorno de chamada é registrado para o evento ItemAdded.
1 2 3 4 5 6 7 8 9 |
static void QueryItemCallBack(string key, CQEventArg arg) { switch (arg.EventType) { case EventType.ItemAdded: Console.WriteLine(“Item has been added”); break; } } |
Etapa 2: registrar consulta e notificações
Depois de registrar os retornos de chamada para os eventos, você deve criar uma Consulta Contínua que especificará os critérios para o conjunto de dados resultante. Os eventos serão acionados com base nesta Consulta Contínua. Depois disso, os retornos de chamada são registrados com a consulta. Feito isso, a consulta é registrada no servidor de cache usando o Registrar CQ método.
O exemplo de código abaixo mostra como tudo isso acontece.
1 2 3 4 5 6 7 8 9 10 11 12 |
string query = "SELECT $VALUE$ FROM FQN.Product WHERE Category = ?"; var queryCommand = new QueryCommand(query); queryCommand.Parameters.Add("Category", "Beverages"); // Create Continuous Query var cQuery = new ContinuousQuery(queryCommand); // Item add notification cQuery.RegisterNotification(new QueryDataNotificationCallback(QueryItemCallBack), EventType.ItemAdded, EventDataFilter.None); cache.MessagingService.RegisterCQ(cQuery); |
Cancelar o registro da consulta contínua
NCache oferece a opção de cancelar o registro de notificações da Consulta Contínua quando você não precisar mais delas. Isso é feito usando o Notificação de cancelamento de registro método.
No exemplo de código a seguir, uma notificação de evento não é registrada de uma Consulta Contínua.
1 |
cQuery.UnRegisterNotification(new QueryDataNotificationCallback(QueryItemCallBack), EventType.ItemAdded); |
NCache também oferece a opção de cancelar o registro da própria Consulta Contínua do cluster de cache. Não é necessário mantê-lo em execução no cache quando você não precisar mais dele, pois consome recursos. Para cancelar o registro de uma Consulta Contínua do cache, NCache dá a você Cancelar registro CQ método.
No exemplo de código a seguir, uma Consulta Contínua não é registrada no servidor de cache.
1 |
cache.MessagingService.UnRegisterCQ(cQuery); |
NCache: A melhor solução disponível
Quando se trata de aplicativos de negócios grandes e complexos, o refinamento de dados é um grande desafio. Processamento de fluxo in NCache atende a esse desafio convertendo dados grandes e complexos em fluxos de dados para facilitar o processamento.
Uma aplicação popular do Stream Processing é a Assinante do editor Modelo de NCache. No entanto, isso vem com as seguintes limitações:
- As mensagens não são persistidas pelos aplicativos depois de entregues aos assinantes.
- A filtragem de dados ocorre na ponta do cliente, tornando a arquitetura do aplicativo mais complexa.
A Consulta Contínua aborda esses dois problemas das seguintes maneiras:
- Persistindo os dados dentro do cache mesmo após o processamento.
- Filtrando dados por meio de instruções OQL bastante simples no lado do servidor em vez do lado do cliente. Isso garante uma arquitetura de aplicativo simples.
Consulta Contínua Processamento de fluxo Mensagens do Pub/Sub
Conclusão
NCache é um cache distribuído extremamente rápido e fácil de dimensionar que lida com gargalos de banco de dados de forma eficiente e eficaz. Assim como a consulta contínua, processamento de fluxo e mensagens do Pub/Sub, NCache tem muitos outros recursos ricos e poderosos que você deve experimentar. Esses recursos fornecem resultados quantitativos e qualitativos. Experimentar NCache agora!