Resolva Limitações de Cache ASP.NET em Web Farms com NCache

A Microsoft fornece o objeto Cache do ASP.NET no escopo do aplicativo do ASP.NET, que permite armazenar em cache os dados do aplicativo e reduzir essas viagens caras ao banco de dados e melhorar seu desempenho ASP.NET. Aqui está como o ASP.NET Cache é normalmente usado.

using System.Web.Caching;
...
string key = "Employee:EmployeeId:1000";
Employee employee = (Employee)Cache[key];

if (employee == null){    
  // Load Employee from DB & put it in the Cache
  LoadEmployeeFromDb(employee);
  Cache.Insert(key, employee, null, 
               Cache.NoAbsoluteExpiration, 
               Cache.NoSlidingExpiration, 
               CacheItemPriority.Default, null );
}

Limitações de cache ASP.NET em Web Farms

O Cache ASP.NET é um cache autônomo em processo (InProc) e, portanto, tem muitas limitações se seu aplicativo for implantado em um web farm com balanceamento de carga. Essas limitações são:

  • Várias cópias de cache não sincronizadas: Várias cópias de seu cache em jardins da Web ou farms da Web não são sincronizadas entre si porque o ASP.NET Cache é autônomo. E isso representa um grande problema de integridade de dados para seu aplicativo.
  • Cache perdido quando o processo de trabalho é reciclado: Todos os dados do ASP.NET Cache são perdidos quando o processo de trabalho é reciclado. E isso causa um problema de desempenho porque você precisa recarregar todo o cache do banco de dados novamente.
  • O problema do tamanho do cache é limitado: O Cache do ASP.NET deve estar dentro do limite de memória do processo de trabalho do ASP.NET e isso impõe uma restrição severa ao tamanho do seu cache.
  • A sincronização de cache por meio do banco de dados tem problemas: SQL CacheDependency no ASP.NET Cache permite sincronizar o cache com o banco de dados. E algumas pessoas o usam para sincronizar várias cópias de cache em diferentes servidores da Web entre si, passando pelo banco de dados. Mas, isso tem grandes problemas de desempenho e escalabilidade porque o banco de dados está novamente no centro de todas as atividades e o próprio SQL CacheDependency não é muito escalável.

Cache Distribuído (NCache): Solução para Web Farms

NCache é um cache distribuído e resolve todas as limitações do ASP.NET Cache mencionadas acima. Aqui está como NCache aborda essas limitações:

  • Cache sincronizado no web farm: NCache é um cache distribuído e sincroniza o cache em vários servidores em um web farm. Isso significa que não há problemas de integridade de dados com NCache.
  • Cache OutProc no jardim da web: NCache é um cache fora do processo para que vários processos de trabalho possam compartilhar um cache comum.
  • Tamanho do cache muito escalável: NCache não apenas coloca qualquer tipo de processo de trabalho ASP.NET de limitação de tamanho de memória, mas também permite que você adicionar mais servidores de cache para aumentar a capacidade de armazenamento. Assim, você pode ter 100 GB ou mais de tamanho de cache facilmente.
  • O cache é dimensionado para altas transações em web farms: NCache é um cache distribuído e fornece topologias de cache escaláveis. Isso permite NCache para dimensionar o cluster de cache sem problemas.
  • O cache é altamente confiável com replicação de dados: NCache fornece replicação de dados inteligente sem sacrificar qualquer desempenho. Essa replicação de dados garante que, mesmo que um servidor de cache fique inativo, nenhum dado seja perdido. Isso permite que seu aplicativo ASP.NET armazene dados em cache sem se preocupar com qualquer perda de dados.

NCache tem API de cache ASP.NET e mais

NCache fornece todos os recursos do ASP.NET Cache com uma API idêntica plus. Isso permite que você migrar do cache ASP.NET para NCache perfeitamente. Você só altera o namespace de System.Web.Caching para Alachisoft.NCache.Web.Caching e certifique-se de que todos os seus objetos armazenados em cache sejam serializáveis.

Além disso, NCache fornece vários recursos de cache que o ASP.NET Cache não possui. Aqui está uma lista parcial:

Leia mais sobre todos NCache características.

Como usar rapidamente NCache?

Aqui estão alguns passos simples que você pode tomar para se beneficiar rapidamente dele:

  1. Instale NCache: em seus servidores web e dois servidores de cache
  2. Criar um cache: através de uma GUI baseada NCache Ferramenta de gerenciamento
  3. Cache de dados do aplicativo em NCache: Você precisará fazer referência NCache montagens e depois fazer NCache Chamadas de API para armazenar e buscar seus objetos .NET do cache
  4. Monitorar o desempenho do ASP.NET: Agora você pode monitorar o desempenho do ASP.NET e também NCache desempenho. NCache fornece um rico conjunto de contadores PerfMon para você monitorar com

O que fazer a seguir?

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