Se o seu aplicativo ASP.NET tem apenas alguns usuários, você provavelmente não se importa com o quão rápido ou lento ele é e provavelmente está dando a você um desempenho muito bom de qualquer maneira. Mas, à medida que você adiciona mais carga ao seu aplicativo ASP.NET, as chances são bastante altas de que o desempenho do ASP.NET caia significativamente. Ele pode até parar se carga suficiente for colocada sobre ele. E, ironicamente, tudo isso acontece exatamente quando sua empresa está vendo mais atividade, então o impacto é ainda maior.
O ASP.NET hoje se tornou muito popular para aplicativos de alto tráfego e agora é comum ver 10-20 farms de servidores balanceados e, em alguns casos, até 50-100 farms de servidores. Portanto, nessas situações, o desempenho do ASP.NET é uma questão ainda mais delicada a ser resolvida.
NCache Adicionar ao carrinho NCache Docs Documentos de cache do ASP.NET
utilização NCache como um cache distribuído
A principal razão para a queda de desempenho do ASP.NET à medida que você aumenta a carga nele é o seu banco de dados que não pode lidar com cargas maiores da mesma forma que o web farm de seu aplicativo ASP.NET pode. Isso ocorre porque você pode adicionar mais servidores ao farm da Web ASP.NET, mas não pode fazer o mesmo com seu banco de dados.
Então, nessas situações, sua melhor aposta é usar um cache distribuído como NCache. NCache está na memória, por isso é muito mais rápido que o banco de dados. E, NCache cria um cluster de servidores de cache e você pode aumentar o cluster linearmente como o web farm. Como resultado, com NCache, seu desempenho ASP.NET permanece ótimo mesmo sob cargas de transação extremas. Você pode usar NCache das duas maneiras a seguir:
Armazenamento de estado de sessão ASP.NET
Você pode configurar seu aplicativo ASP.NET para armazene o estado da sessão ASP.NET em NCache em vez de InProc, State Server ou SQL Server. Por favor, note que nenhuma programação é necessária aqui. Você só modifica o código web.config da seguinte forma:
1 2 3 4 5 6 |
<sessionstate cookieless="false" regenerateexpiredsessionid="true" mode="Custom" customprovider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" exceptionsenabled="true" enablesessionlocking="true" emptysessionwhenlocked="false" sessionlockingretry="-1" sessionappid="NCacheTest" useinproc="false" enablelogs="false" cachename="myReplicatedCache" writeexceptionstoeventlog="false" asyncsession="false"> <providers> <sessionstate></sessionstate></providers></add></providers></sessionstate> |
Cache de dados do aplicativo ASP.NET
A outra maneira é você dados do aplicativo de cache em um cache distribuído como NCache portanto, da próxima vez que seu aplicativo ASP.NET precisar desses dados, ele os encontrará no cache. Aqui está uma pequena amostra de código sobre como armazenar em cache os dados do aplicativo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using Alachisoft.NCache.Web.Caching; ... Cache cache = NCache.InitializeCache("myCache"); // Create a key to lookup in the cache // The key for will be like “Employees:PK:1000” string key = "Employee:EmployeeId:" + emp.EmployeeId.ToString(); Employee employee = (Employee)Cache[key]; if (employee == null) { // item not found in the cache. load from db LoadEmployeeFromDb(employee); // Now, add it to the cache for future reference Cache.Insert(key, employee, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null ); } |
Quanto mais dados você armazenar em cache, menos terá que ir ao banco de dados e mais rápido será o desempenho do seu aplicativo ASP.NET.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições