Si votre application ASP.NET n'a que quelques utilisateurs, vous ne vous souciez probablement pas de sa vitesse ou de sa lenteur et elle vous offre probablement de bonnes performances de toute façon. Mais, à mesure que vous ajoutez plus de charge à votre application ASP.NET, il y a de fortes chances que les performances ASP.NET diminuent considérablement. Il pourrait même s'arrêter si une charge suffisante y est appliquée. Et, ironiquement, tout cela se produit juste au moment où votre entreprise connaît plus d'activité, de sorte que l'impact est encore plus important.
Aujourd'hui, ASP.NET est devenu très populaire pour les applications à fort trafic et il est désormais courant de voir 10 à 20 batteries de serveurs Web équilibrées et, dans certains cas, même 50 à 100 batteries de serveurs. Ainsi, dans ces situations, les performances ASP.NET sont un problème encore plus sensible à résoudre.
NCache Détails NCache Docs Documents de mise en cache ASP.NET
En utilisant NCache en tant que cache distribué
La principale raison de la baisse des performances d'ASP.NET à mesure que vous augmentez la charge est votre base de données qui ne peut pas gérer des charges plus importantes comme le peut votre batterie de serveurs Web d'applications ASP.NET. En effet, vous pouvez ajouter plus de serveurs à la batterie de serveurs Web ASP.NET, mais vous ne pouvez pas faire de même avec votre base de données.
Donc, dans ces situations, votre meilleur pari est d'utiliser un cache distribué comme NCache. NCache est en mémoire, il est donc beaucoup plus rapide que la base de données. Et, NCache construit un cluster de serveurs de cache et vous pouvez développer le cluster de manière linéaire, tout comme la batterie de serveurs Web. En conséquence, avec NCache, vos performances ASP.NET restent excellentes même en cas de charges de transaction extrêmes. Vous pouvez utiliser NCache des deux manières suivantes :
Stockage d'état de session ASP.NET
Vous pouvez configurer votre application ASP.NET pour stocker l'état de la session ASP.NET dans NCache au lieu de InProc, State Server ou SQL Server. Veuillez noter qu'aucune programmation n'est nécessaire ici. Vous modifiez uniquement le code web.config comme suit :
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 données d'application ASP.NET
L'autre façon est pour vous de mettre en cache les données d'application dans un cache distribué comme NCache Ainsi, la prochaine fois que votre application ASP.NET aura besoin de ces données, elle les trouvera dans le cache. Voici un petit exemple de code expliquant comment mettre en cache les données d'application :
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 ); } |
Plus vous avez de données en cache, moins vous devez accéder à la base de données et plus les performances de votre application ASP.NET sont rapides.