Fournisseur d'état de session ASP.NET pour NCache dans les fermes Web

Pour les déploiements sur site, l'état de session ASP.NET fournit trois options de stockage intégrées (InProc, StateServer et SqlServer) et une quatrième option "Personnalisée". Les deux premières options intégrées (InProc et StateServer) ont des problèmes d'évolutivité, tandis que l'option SqlServer a à la fois des problèmes de performances et d'évolutivité.

Une bien meilleure stratégie consiste à utiliser l'option et le plug-in "Personnalisé" NCache en tant que votre fournisseur d'état de session ASP.NET. NCache est un cache distribué Open Source extrêmement rapide et évolutif pour .NET. Il gère une charge de transaction extrême en vous permettant d'ajouter plus de serveurs de cache au moment de l'exécution et d'évoluer de manière linéaire. NCache fournit également une réplication de cache intelligente afin que vous ne perdiez aucun état de session ASP.NET si un serveur Web ou un serveur de cache tombe en panne.

Doc: Fournisseur d'état de session ASP.NET pour NCache

Fournisseur d'état de session ASP.NET pour NCache

Bénéfices d'un NCache Fournisseur d'état de session ASP.NET

Tout d'abord, aucune programmation n'est requise pour utiliser NCache en tant que fournisseur d'état de session ASP.NET. Vous modifiez simplement votre web.config et spécifiez NCache en tant que fournisseur d'état de session (SSP). Voir les détails sur Configuration du fournisseur d'état de session ASP.NET pour NCache. Voici quelques-uns des avantages de l'utilisation NCache en tant que fournisseur d'état de session ASP.NET :

  1. La haute disponibilité: NCache possède de architecture de clustering peer to peer à auto-guérison sans point de défaillance unique. Cela fournit une disponibilité de 100 % pour votre stockage d'état de session ASP.NET, ce qui est très important pour les applications critiques de l'entreprise.

  2. Évolutivité linéaire : NCache vous permet de mettez à l'échelle votre cluster de cache de manière linéaire en ajoutant plus de serveurs de cache au cluster. Cela augmente votre capacité de transaction et également votre capacité de stockage. Cela signifie que le stockage de l'état de session ASP.NET ne devient jamais un goulot d'étranglement pour votre application sous de lourdes charges de transactions.

  3. Réplication de session intelligente : NCache fournit des topologies de mise en cache riches (Mirrored Cache, Replicated Cache et Partition-Replica Cache) avec réplication de session intelligente qui ne fait aucun compromis sur les performances et l'évolutivité. Cela garantit que vous ne perdez aucune donnée de session lorsqu'un serveur Web ou un serveur de cache tombe en panne.

  4. Sérialisation compacte et rapide : NCache fournit une Sérialisation compacte rapide qui est plus rapide que la sérialisation .NET standard et ne nécessite aucune programmation à utiliser. Enregistrez simplement vos classes .NET et NCache génère le code source de sérialisation, le compile en mémoire lors de l'exécution lorsque votre application se connecte au cache, puis utilise ce code compilé pour toutes les sérialisations ultérieures.

Prise en charge de plusieurs régions (centres de données)

NCache fournit deux façons de gérer l'état de session ASP.NET pour les applications s'exécutant dans plusieurs régions (centres de données) tout en maintenant la cohérence de session entre elles. Elles sont:

  1. Réplication WAN de l'état de la session ASP.NET : NCache fournit une Topologie de pont pour vous permettre de répliquer l'intégralité de votre magasin d'état de session ASP.NET (le cache distribué) dans une autre région (centre de données) sur le WAN. Cela garantit que vos sessions existent toujours dans plusieurs régions (centres de données). Vous pouvez l'utiliser en mode actif-passif (pour la reprise après sinistre) ou actif-actif. En mode actif-actif, vous pouvez même équilibrer la charge du trafic entre plusieurs régions (centres de données). Tout cela se fait par des changements de configuration.

  2. État de la session ASP.NET multirégionale : Si vous ne souhaitez pas répliquer l'état de session ASP.NET sur le WAN en raison du coût de la consommation de bande passante, vous pouvez choisir d'utiliser ce État de session ASP.NET multisite caractéristique de NCache. Dans ce cas, l'état de session ASP.NET n'est pas répliqué sur les sites et est plutôt conservé à l'emplacement de sa création. Mais, si vous déplacez du trafic d'une région (centre de données) vers une autre, l'état de session ASP.NET se déplace avec lui.

    Cela vous permet d'avoir deux régions actives ou plus (centres de données), de conserver la majeure partie du trafic vers son propre centre de données mais de déborder occasionnellement vers l'autre centre de données si vous le souhaitez. Et, vous pouvez également faire tomber un centre de données sans causer d'interruptions pour les utilisateurs car leurs sessions seront accessibles par d'autres centres de données.

Fonctionnalités avancées dans NCache Fournisseur d'état de session ASP.NET

NCache Le fournisseur d'état de session ASP.NET implémente toutes les fonctionnalités standard du fournisseur d'état de session ASP.NET. De plus, il fournit diverses fonctionnalités avancées pour vous permettre de gérer des situations complexes dans vos applications.

  1. Partager des sessions sur plusieurs domaines d'application : Si vous utilisez plusieurs domaines d'application et que vous disposez d'un fichier web.config distinct pour chaque domaine d'application, spécifiez la même valeur dans sessionAppId=>"NCacheApp1" et cela se traduit par le partage de session entre ces domaines d'application. Si vous utilisez un identifiant d'application de session différent, les sessions ne sont pas partagées entre les domaines d'application.

  2. Journalisation des erreurs : Vous pouvez activer la journalisation des erreurs dans un fichier journal sur votre serveur Web (dans INSTALL_DIR\NCachedossier \log-files\SessionStoreProvider) en spécifiant enableLogs = "true" . Vous pouvez également activer la journalisation des erreurs dans le journal des événements Windows en spécifiant writeExceptionsToEventLog = "true" .

  3. Verrouillage de session standard : Le comportement de verrouillage de session ASP.NET standard est que si une session est verrouillée, une autre demande attend pendant 90 secondes (configurable) et à la fin force le déverrouillage de la session. Vous pouvez spécifier cette option comme suit :

     enableSessionLocking = "true" sessionLockingRetry = "-1" emptySessionWhenLocked = "false" 

  4. Verrouillage de session amélioré : Si vous avez une application ASP.NET à fort trafic où les robots peuvent extraire des données et utiliser le même identifiant de session pour des centaines ou des milliers de requêtes simultanément, vous ne pouvez pas vous permettre l'option de verrouillage de session standard car attendre 90 secondes pourrait bloquer tous vos sockets disponibles. Au lieu de cela, vous souhaitez renvoyer la demande rapidement pour indiquer un échec. Vous pouvez le spécifier comme suit :

     enableSessionLocking = "true" sessionLockingRetry = "5" emptySessionWhenLocked = "false" 

    Cela fait 5 tentatives à des intervalles d'une demi-seconde, puis renvoie une session vide pour signifier un échec. Même lancer une exception ici est coûteux. C'est pourquoi une session vide est implémentée. Ce comportement a été mis en œuvre à l'origine à la demande d'un site Web de compagnie aérienne à fort trafic.

Que faire ensuite?

NCache Détails
Télécharger NCache
Demander une démo personnalisée
© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.