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

Pour les déploiements sur site, ASP.NET Session State propose 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 StateServer) présentent des problèmes d'évolutivité, tandis que l'option SqlServer présente des problèmes de performances et d'évolutivité.

Une bien meilleure stratégie consiste à utiliser l'option et le plug-in "Personnalisé" NCache comme 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 des informations intelligentes réplication du cache afin que vous ne perdiez aucun état de session ASP.NET si un serveur Web ou un serveur de cache tombe en panne.

Schéma d'architecture de NCache Fournisseur d'état de session ASP.NET dans un environnement de ferme de serveurs Web montrant une couche de serveur Web sans état connectée à un cluster de cache dynamique à évolutivité linéaire.
NCache Architecture de session distribuée pour les fermes de serveurs Web ASP.NET.

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

Exécution NCache Votre fournisseur d'état de session (SSP) ne nécessite aucune modification de code. Il vous suffit de suivre ces étapes :

  1. Installer le NCache Package NuGet du fournisseur de session via le gestionnaire de packages NuGet.
  2. Configurer Modifiez votre fichier web.config pour utiliser le mode de session « Personnalisé ».
  3. Installez votre NCache Nom du cluster et paramètres dans la configuration du fournisseur.

Consultez les détails de configuration Fournisseur d'état de session ASP.NET pour NCacheVoici quelques-uns des avantages de l'utilisation de 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 garantit une disponibilité de 100 % pour le stockage de l'état de session ASP.NET, ce qui est crucial pour les applications critiques. Ces fonctionnalités de haute disponibilité rendent NCache Le choix privilégié pour les applications critiques dans les secteurs du commerce électronique, des services financiers et de la santé, où la persistance des sessions est essentielle à l'intégrité des transactions.
  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 (Cache en miroir, Cache répliqué et Cache de Partition-Réplica) avec une réplication de session intelligente qui ne compromet ni les performances ni l'évolutivité. Cela garantit que vous ne perdez aucune donnée de session en cas de panne d'un serveur web ou d'un serveur de cache.
  4. Sérialisation compacte et rapide :NCache fournit une Sérialisation compacte Plus rapide qu'une sérialisation .NET classique, son utilisation ne nécessite aucune programmation. Enregistrez simplement vos classes .NET avec ce service, et NCache génère et compile automatiquement le code de sérialisation au moment de l'exécution pour une utilisation efficace.

Comment gérer les sessions ASP.NET sur plusieurs régions (centres de données) ?

NCache propose deux méthodes pour gérer l'état des sessions ASP.NET des applications exécutées dans plusieurs régions (centres de données) tout en maintenant la cohérence des sessions. Ces méthodes sont les suivantes :

  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é) vers une autre région (centre de données) à travers le WANCela garantit que vos sessions existent toujours dans plusieurs régions (centres de données). Vous pouvez utiliser ce mode 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 modifications 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 consommation de bande passante, vous pouvez utiliser État de session ASP.NET multisite caractéristique de NCacheDans ce cas, l'état de session ASP.NET n'est pas répliqué entre les sites, mais conservé à l'emplacement de sa création. Cependant, 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 permet d'avoir deux ou plusieurs régions actives (centres de données), chacune conservant la majeure partie de son trafic local, mais débordant occasionnellement vers une autre région si nécessaire.

    De plus, vous pouvez également faire tomber un centre de données sans provoquer 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

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

  1. Partager des sessions entre les domaines d'application : Si votre application utilise plusieurs domaines d'application avec des web.config fichiers, en définissant le même sessionAppId (par exemple, "NCacheApp1") dans tous ces domaines permet le partage de session entre ces domaines. Si vous utilisez un ID 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 journalisation des erreurs vers un fichier journal sur votre serveur Web (dans INSTALL_DIR\NCache\log-files\SessionStoreProvider dossier) 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 standard du verrouillage de session ASP.NET est le suivant : si une session est verrouillée, une autre requête attend 90 secondes (configurable) avant de forcer 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, voire des milliers de requêtes simultanément, vous ne pouvez pas vous permettre l'option de verrouillage de session standard, car une attente de 90 secondes pourrait occuper tous vos sockets disponibles. Il est préférable de renvoyer la requête rapidement pour signaler un échec. Vous pouvez spécifier ceci comme suit :

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

    Cela effectue 5 tentatives à intervalles d'une demi-seconde, puis renvoie une session vide pour signaler un échec.

  5. Cas d'utilisation en entreprise : Ce comportement de verrouillage amélioré a été spécialement conçu pour un site web de compagnie aérienne à fort trafic afin d'éviter l'épuisement des sockets à l'échelle du système lors d'un scraping robotisé intense et d'événements à forte concurrence.

Que faire ensuite?

Questions fréquentes

Oui. En configurant un sessionAppId correspondant dans le fichier web.config de chaque application, NCache permet de partager l'état de session entre différents domaines d'application. Ceci est idéal pour les environnements où les utilisateurs naviguent entre plusieurs sous-applications au sein d'une même session.

Oui. NCache est une solution « zéro code » pour la gestion des sessions. Il vous suffit de modifier votre fichier web.config pour changer le mode sessionState en « Personnalisé » et spécifier le NCache fournisseur. Aucune recompilation de l'application n'est requise.

NCache utilise une architecture de clustering pair-à-pair auto-réparatrice avec réplication intelligente des sessions. En utilisant des topologies comme Partition-Replica, NCache Il crée une sauvegarde de chaque session sur un nœud différent, garantissant une disponibilité à 100 % et l'intégrité des données même en cas de panne d'un serveur web ou de cache.

NCache est un cache distribué en mémoire, tandis que SQL Server est une base de données sur disque. NCache élimine les goulots d'étranglement de la base de données et les coûts de sérialisation élevés associés à SQL Server, offrant une évolutivité linéaire et des temps de réponse inférieurs à la milliseconde pour la récupération de session.

Oui. NCache offre deux fonctionnalités principales pour la prise en charge multirégionale : la réplication WAN (via une topologie de pont) pour la reprise après sinistre active-passive ou active-active, et les sessions multisites, qui permettent aux sessions de rester locales à l’utilisateur mais de se déplacer entre les centres de données si le trafic est réacheminé.

Contactez-Nous

TÉLÉPHONE

+1 214-619-2601 (Etats-Unis)

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.