O ASP.NET tornou-se uma tecnologia muito popular para aplicativos da Web e mais pessoas estão desenvolvendo aplicativos de alto tráfego nele. Para lidar com o tráfego mais alto, esses aplicativos ASP.NET são implantados em web farms com balanceamento de carga, onde você pode adicionar mais servidores à medida que a carga de tráfego aumenta.
Mas ocorre um problema; o banco de dados e seu armazenamento de dados não podem ser dimensionados da mesma forma para lidar com as cargas de tráfego mais altas. Portanto, o que você obtém é um gargalo em que seu aplicativo ASP.NET fica mais lento e pode até mesmo parar. Em tais situações, o cache de dados é uma excelente maneira de resolver esse gargalo de banco de dados e armazenamento de dados. O armazenamento em cache permite que você armazene dados de aplicativos próximos e reduza essas viagens caras ao banco de dados.
NCache Adicionar ao carrinho NCache Docs Cache ASP.NET
O que é Cache ASP.NET?
O ASP.NET Cache permite armazenar em cache os dados do aplicativo e é um cache bastante rico em recursos, incluindo os seguintes recursos:
- Vencimentos: Absoluto automático e deslizante vencimentos.
- Dependência de cache: Para gerenciar relacionamentos de dados no cache.
- SqlCacheDependency: Para sincronizar o cache com o banco de dados.
- Chamadas de retorno: Para ser notificado quando os itens forem atualizados no cache.
Aqui está um código de exemplo mostrando o uso do cache ASP.NET
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="kwrd">using</span> System.Web.Caching; <span class="rem">// Create a key to lookup in the cache</span> <span class="rem">// The key for will be like “Employees:PK:1000”</span> <span class="kwrd">string</span> key = <span class="str">"Employee:EmployeeId:"</span> + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; <span class="kwrd">if</span> (employee == <span class="kwrd">null</span>) { <span class="rem"> // item not found in the cache. load from db</span> LoadEmployeeFromDb(employee); <span class="rem"> // Now, add it to the cache for future reference</span> Cache.Insert(key, employee, <span class="kwrd">null</span>, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, <span class="kwrd">null</span> ); } |
Dependência de cache Dependência SQL Expiração de dados
Limitações de cache ASP.NET em Web Farms
Apesar dos recursos de cache muito úteis, o ASP.NET Cache tem algumas limitações sérias. Alguns deles são dados abaixo:
- Não sincroniza em um servidor ou processos de trabalho: NET Cache não sincroniza em vários servidores ou mesmo em vários processos de trabalho. Portanto, você não pode usá-lo em um web farm ou mesmo em um web garden, a menos que seus dados sejam somente leitura, enquanto você precisa armazenar em cache todos os tipos de dados, incluindo um que muda com certa frequência.
- Limitação do tamanho do cache: Você não pode aumentar o Cache do ASP.NET para ser mais do que um processo de trabalho do ASP.NET pode conter. Para sistemas de 32 bits, isso é 1 GB e também inclui o código do aplicativo. Mesmo para sistemas de 64 bits, o tamanho não pode ser dimensionado.
Usar cache distribuído compatível com ASP.NET Cache
A maneira de contornar esses limitações do ASP.NET Cache é usar um cache distribuído como NCache para web farms. NCache fornece os mesmos recursos que o ASP.NET Cache e mais. Mas, como um cache distribuído, NCache sincroniza facilmente em vários servidores. Aqui estão alguns benefícios que você obtém NCache:
- A transação do Scale carrega muito bem: Você pode continuar adicionando mais servidores de cache ao cluster de cache à medida que seu web farm cresce de 2 para 200 servidores. NCache nunca se torna um gargalo para lidar com mais tráfego.
- O armazenamento de dados da escala bem: À medida que você adiciona mais servidores de cache, sua capacidade de armazenamento em cache aumenta devido a Topologia de cache de partição.
- Replica dados para confiabilidade: Você pode garantir que nenhuma perda de dados ocorra mesmo que um servidor fique inativo porque os dados são replicados para outros servidores.
- Cluster de cache dinâmico de autorrecuperação: NCache fornece 100% de tempo de atividade através disso. E você pode adicionar ou remover servidores de cache em tempo de execução sem interromper o cache ou seu aplicativo.
Conclusão
Bem, se você tem um aplicativo ASP.NET rodando em um web farm, dê uma olhada em NCache e veja como isso ajudará a melhorar o desempenho e a escalabilidade do seu aplicativo.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições
Você sempre pode nos enviar um e-mail para sales@alachisoft.com
Aprecie-o pela excelente redação. De qualquer forma, como poderíamos nos comunicar?
Eu usei NCache durante um dos meus projetos e os resultados foram muito impressionantes. altamente recomendado !!!