ASP.NET est maintenant devenu une technologie très populaire pour les applications Web et de plus en plus de personnes y développent des applications à fort trafic. Pour gérer le trafic plus élevé, ces applications ASP.NET sont déployées dans des fermes Web à charge équilibrée où vous pouvez ajouter plus de serveurs à mesure que votre charge de trafic augmente.
Mais un problème survient ; la base de données et votre stockage de données ne peuvent pas évoluer de la même manière pour gérer les charges de trafic plus élevées. Ainsi, vous obtenez un goulot d'étranglement où votre application ASP.NET ralentit et peut même s'arrêter. Dans de telles situations, la mise en cache des données est un excellent moyen de résoudre ce goulot d'étranglement de la base de données et du stockage des données. La mise en cache vous permet de stocker les données d'application à proximité et de réduire les déplacements coûteux de la base de données.
NCache Détails NCache Docs Mise en cache ASP.NET
Qu'est-ce que le cache ASP.NET ?
Le cache ASP.NET vous permet de mettre en cache les données d'application et est un cache assez riche en fonctionnalités comprenant les fonctionnalités suivantes :
- Dates d'expiration : Automatique absolu et glissant expirations.
- Dépendance du cache : Pour gérer les relations de données dans le cache.
- SqlCacheDependency: Pour synchroniser le cache avec la base de données.
- Rappels : Pour être averti lorsque des éléments sont mis à jour dans le cache.
Voici un exemple de code montrant l'utilisation du 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> ); } |
Dépendance du cache Dépendance SQL Expiration des données
Limitations du cache ASP.NET dans les batteries de serveurs Web
Malgré des fonctionnalités de mise en cache très utiles, ASP.NET Cache présente de sérieuses limitations. Certains d'entre eux sont donnés ci-dessous:
- Ne se synchronise pas sur un serveur ou des processus de travail : NET Cache ne se synchronise pas sur plusieurs serveurs ni même sur plusieurs processus de travail. Ainsi, vous ne pouvez pas l'utiliser dans une ferme Web ou même un jardin Web à moins que vos données ne soient en lecture seule alors que vous devez mettre en cache toutes sortes de données, y compris celles qui changent assez fréquemment.
- Limitation de la taille du cache : Vous ne pouvez pas augmenter le cache ASP.NET pour qu'il soit supérieur à ce qu'un processus de travail ASP.NET peut contenir. Pour les systèmes 32 bits, il s'agit de 1 Go et cela inclut également le code d'application. Même pour les systèmes 64 bits, la taille ne peut pas évoluer.
Utiliser le cache distribué compatible avec le cache ASP.NET
La façon de contourner ces limites du cache ASP.NET est d'utiliser un cache distribué comme NCache pour les fermes Web. NCache fournit les mêmes fonctionnalités que ASP.NET Cache et plus encore. Mais, en tant que cache distribué, NCache se synchronise facilement sur plusieurs serveurs. Voici quelques avantages dont vous bénéficiez NCache:
- La charge de transaction de Scale est très bien : Vous pouvez continuer à ajouter d'autres serveurs de cache au cluster de cache à mesure que votre ferme Web passe de 2 à 200 serveurs. NCache ne devient jamais un goulot d'étranglement pour gérer plus de trafic.
- Le stockage de données de Scale bien : Au fur et à mesure que vous ajoutez des serveurs de cache, votre capacité de stockage de cache augmente en raison de Topologie du cache de partition.
- Réplique les données pour la fiabilité : Vous pouvez vous assurer qu'aucune perte de données ne se produit même si un serveur tombe en panne car les données sont répliquées sur d'autres serveurs.
- Cluster de cache dynamique à réparation automatique : NCache fournit 100% de disponibilité grâce à cela. De plus, vous pouvez ajouter ou supprimer des serveurs de cache lors de l'exécution sans arrêter le cache ou votre application.
Conclusion
Eh bien, si vous avez une application ASP.NET exécutée sur une ferme Web, jetez un œil à NCache et voyez comment cela contribuera à améliorer les performances et l'évolutivité de votre application.
Vous pouvez toujours nous envoyer un e-mail à sales@alachisoft.com
Appréciez-le pour l'excellente rédaction. Quoi qu'il en soit, comment pourrions-nous communiquer?
J'ai utilisé NCache au cours d'un de mes projets et les résultats ont été très impressionnants. hautement recommandé !!!