Estudo de caso - NCache aumentar o desempenho de um aplicativo de gerenciamento de tarefas

Imagem do cabeçalho

Após uma fácil migração para NCache, ele começou a agir como a cola que mantém nosso aplicativo unido. E as diversas funcionalidades que oferece têm sido um verdadeiro bónus, principalmente as filas, que utilizamos excessivamente.

Analista de suporte a aplicações empresariais
 

País ou região:
Europa

Indústria:
Defesa militar

Perfil da companhia:
Este é um departamento de defesa europeu que trabalha para criar uma ligação entre várias nações, permitindo-lhes consultar e colaborar em projetos de segurança, ao mesmo tempo que coordenam atividades de gestão de crises internacionais.

NCache permite que esta organização mantenha alta disponibilidade e acelere o desempenho de seu aplicativo de gerenciamento de tarefas.

Baixar pdf
 

Introdução

Essas organizações exigem alta disponibilidade, consistência de dados e fácil gerenciamento de tarefas. Esta organização, em particular, desenvolveu um aplicativo de rastreamento para uso de seus funcionários no gerenciamento de informações e tarefas entre diferentes departamentos. Os funcionários fazem login no aplicativo e inserem suas tarefas diárias. Cada departamento relevante pode supervisionar os funcionários e verificar o status de suas tarefas. A empresa usou anteriormente Redis para seus processos de desenvolvimento, mas enfrentou limitações na implantação em seus servidores. Além disso, como principais contribuidores para a paz no cenário internacional, queriam melhorar a sua aplicação de rastreamento para serem notificados sobre quaisquer mudanças que ocorressem em tempo real.

 

Pontos problemáticos da aplicação

Eles exigem um bom mecanismo de cache. Eles avaliaram Redis. Numa fase inicial, eles descobriram que Redis não estava atendendo aos requisitos de estrutura de dados, o que significa que não podiam implantar Redis em seu QG. Além disso, a migração para Redis não foi tão fácil quanto se poderia imaginar, Redis não estava cumprindo os requisitos técnicos da organização. Redis é desenvolvido em C++ no Linux. E não é oficialmente compatível com Windows. Como o aplicativo da organização foi criado usando o .NET 6, a integração de um produto que não seja nativo do .NET pode causar problemas.

 

Como funciona o dobrador de carta de canal NCache Se encaixa na solução deles?

NCache fornece a eles uma solução de memória flexível e escalonável para seus aplicativos de camada única, juntamente com seus recursos avançados. Eles estão recebendo notificações de alteração de dados mais rápidas para processar e trabalhar neles.

Foi uma migração fácil de Redis para NCache e foi bastante simples.

disse que o Analista de suporte a aplicações empresariais do time.

Seja qual for a sua aplicação parece faltar, NCache forneceu as soluções ideais como solução.

Mudanças não planejadas ou manutenções planejadas não afetarão o desempenho do aplicativo, pois ele usa topologia de cache replicado - se um nó estiver inativo, o outro nó compensará. Os requisitos de estrutura de dados da organização foram atendidos por NCache Filas muito intuitivas e fáceis de implementar. De SignalR backplane para o Cache Loader, provedor de origem de apoio (leitura) e NCache fechaduras; o aplicativo de rastreamento se beneficia de todos esses recursos poderosos de NCache.

Além disso, NCache é uma solução de cache distribuído nativa do .NET que pode ser implantada no Linux e também no Windows. Isso os ajudou em sua implantação, pois Redis suporta apenas Linux. A maioria dos aplicativos .NET são executados no Windows e agora .NET Core os aplicativos podem ser executados no Windows e no Linux. Portanto, tornou-se essencial garantir que seus caches distribuídos também forneçam suporte para ambos os sistemas operacionais. E NCache como uma das principais soluções de cache, fornece esse suporte.

Alachisoft Produto:
NCache

Necessidades do cliente atendidas:

  • Migração/implantação fácil e direta
  • Melhores estruturas de dados
  • AMPLIAR
  • Viagens de banco de dados reduzidas
 

Visão geral da arquitetura de aplicativos e implantação com NCache

A arquitetura do aplicativo compreende principalmente os seguintes componentes:

  • Front-end:
    O front-end foi projetado usando o quadro SVELTE JS.
  • Camada Lógica:
    A camada lógica interage com o banco de dados usando APIs Rest. Ele usa .NET Core 6 APIs da Web, possui hubs de notificação SignalR e vem com APIs .NET para SearchService e serviços de colaboração.
  • Processo interno:
    O back-end é baseado no SQL Server como armazenamento de dados. As fontes de dados incluem SQL Server, ADFS, Sharepoint e Document Management Server. A fonte de apoio (NCache Read-Through) é implementado nesta camada que usa .NET 6 com NCache 5.3º SP1.

Para uma visão mais detalhada do aplicativo, a API da Web contém o serviço Action, Notification Hub junto com SignalR. NCache atua como um hub central entre diferentes partes do aplicativo. O usuário faz login usando ADFS (Active Directory Federation Services), vai para o front-end e chama a API Web. A API Web é responsável por criar esta ação e colocá-la na fila dentro do NCache. O Action Service executa várias operações, como pesquisar a fila, processar o objeto tasker, etc.

Se houver um item presente no Action Service, ele o processará. Como parte do processamento, o Action Service também envia as notificações por meio de um Notification Hub. Este serviço de ação altera o estado do objeto de dados "Tasker" - no caso de uma mudança no estado dos dados onde novos dados podem ser adicionados ou dados adicionados anteriormente são atualizados. Isso ajuda os usuários a analisar o processamento e envia notificações a todos os usuários afetados por essa alteração. O aplicativo também possui um serviço de colaboração para gerenciar tarefas usando SharePoint.

Diagrama arquitetônico usando NCache
Figura 1 – Diagrama Arquitetônico utilizando NCache

Atualmente, o aplicativo usa 2 servidores com balanceamento de carga que hospedam o front-end, a camada lógica e NCache. Além disso, há 1 servidor de banco de dados para suportar os servidores. Eles possuem 1 cache geral onde armazenam filas que também armazenam em cache alguns dados de referência. Eles também possuem outros 2 caches para armazenamento de dados estáticos, ou seja, “tarefas”. O cache geral e os caches estáticos têm uma fonte de apoio (leitura) e um carregador implementados.

 

SignalR Backplane

A organização amplia o uso do aplicativo com o SignalR backplane. Quando vários usuários estão usando o aplicativo da web, eles aguardam feedback sobre o objeto tasker. O feedback é fornecido a eles por meio de um Notification Hub que usa SignalR. Isso eliminou a necessidade de atualizar a página da web sempre para solicitar novas mensagens.

Aplicativos web ASP.NET em tempo real podem ser criados com SignalR, onde o servidor transmite atualizações para todos os usuários logados assim que uma atualização é acionada. Ao fazer isso, o tempo de resposta às solicitações de atualizações dos usuários é reduzido. NCache oferece suporte para SignalR fornecendo uma extensão ao provedor SignalR. O provedor possui registros de todos os servidores web envolvidos no aplicativo.

 

Estrutura de dados da fila para dados consistentes

Eles têm usado excessivamente a estrutura de dados Queue fornecida por NCache. As filas são armazenadas no cache geral para manter as informações processadas em tempo de execução. A API Web adiciona um novo item à fila. Em seguida, o Action Service pesquisa essa fila e, se um novo item for encontrado, ele executa os processos necessários. Toda a fila é armazenada em NCache. Sempre que eles precisam buscar um item, eles não precisam percorrer toda a fila, pois esse não é apenas um processo lento, mas também caro. NCache usa referência para obter o item necessário que não prejudica o desempenho.

A estrutura de dados Queue vem com diferentes APIs como GetQueue, que verifica se um item existe ou não no cache com a ajuda do método Contains. Da mesma forma, obter o item mais alto de uma fila, copiar uma fila de origem inteira para o array unidimensional, remover itens da fila, registrar eventos (estruturas de dados e baseadas em chave), bloquear e desbloquear as filas para consistência de dados - tudo isso são as outras características que NCache ofertas com a estrutura de dados Queue.

 

Bloqueio de filas para integridade de dados

A organização também traz o uso do bloqueio oferecido pela NCache. Por exemplo, eles podem bloquear a fila sempre que o usuário estiver lendo ou gravando nela, digamos por cerca de 20 segundos usando a API Lock para que a integridade dos dados seja mantida. Se a fila necessária estiver livre e pronta para ser usada novamente, o usuário a desbloqueia usando a API de desbloqueio. Quando falamos sobre atualizações simultâneas, NCacheO recurso de bloqueio do está pronto para servir e fornecer integridade e consistência de dados.

Sobre Alachisoft:
Alachisoft fornece um cache distribuído na memória popular de alto desempenho chamado NCache. NCache é um middleware de código aberto que é executado em ambiente de produção e aumenta o desempenho e a escalabilidade de aplicativos da Web .NET, aplicativos de serviço SOA e aplicativos gerais de servidor de alto tráfego. Desde 2005, NCache tem um histórico comprovado com centenas de clientes em todo o mundo e especialmente nos EUA, Reino Unido e Europa Ocidental.

Você pode baixar uma avaliação gratuita de 30 dias totalmente funcional do NCache da SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Alachisoft
Sede da empresa
12005 Ford Road, Suite 520
Dallas, TX 75234

US: +1 (214) 764-6933
UK: + 44 207 993-8327

sales@alachisoft.com
support@alachisoft.com

 

Fonte de apoio (cache de leitura)

Eles usaram o provedor Read-Through implementado no armazenamento geral da aplicação, bem como caches estáticos - para buscar os dados da fonte de dados caso eles não estejam presentes no cache. Isso minimiza as viagens de rede adicionais ao banco de dados. NCache oferece um provedor de leitura que permite aos usuários se comunicarem com a fonte de dados. No cache de leitura, no caso de falha no cache, NCache entrará em contato com o provedor para carregar os dados por trás da chamada get.

O provedor Read-Through é configurado usando o IReadThruProvider para .NET. Se um item não puder ser encontrado no cache, os métodos CarregarFromSource e LoadDataTypeFromSource forneça lógica para carregar o objeto ou tipo de dados da fonte de dados definida.

 

Carregador de cache para pré-preencher o cache

NCache fornece outro recurso poderoso, o Carregador de inicialização de cache que eles têm usado em seu aplicativo de rastreamento. O aplicativo preenche previamente os dados no cache na inicialização. Isso não apenas economiza custos de rede, mas também torna os dados altamente disponíveis. O objetivo do Cache Loader é evitar latência mesmo na solicitação inicial, mas como o Cache Loader é executado em outro serviço, ele é tecnicamente assíncrono. O aplicativo de rastreamento sempre mantém os dados usados ​​com mais frequência no cache na inicialização. Esse recurso ajudou a melhorar o desempenho do aplicativo, além de lidar com o rendimento da solicitação.

 

Seguindo em frente com NCache

A organização está se beneficiando NCache em inúmeras áreas, conforme explicado acima. Como parte do seu crescimento futuro, eles estão planejando usar NCacheO recurso Grupos do , junto com suas notificações de eventos e mensagens do Pub/Sub, já que o Action Service precisa pesquisar sempre para verificar se há atualizações. NCache é capaz de gerenciar tudo isso para eles sem perder desempenho.

O que fazer a seguir?

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