21 votes

Pourquoi est-ce une mauvaise idée d'utiliser la session pour stocker l'état des sites Web à fort trafic ?

Je regarde les vidéos d'apprentissage ASP.NET sur asp.net/learn. Dans ce tutoriel, ils construisent un moteur de quiz. À un moment donné, le narrateur explique que nous allons utiliser l'objet Session pour maintenir l'état entre chaque page (chaque page contient une question et quatre réponses). Il dit que "comme il s'agit d'un site Web à faible trafic", il est normal d'utiliser Session et qu'il n'a pas le temps de mettre en œuvre une méthode plus sophistiquée.

Je me demande simplement à quelle(s) méthode(s) alternative(s) il fait allusion ? Et pourquoi la session est-elle un mauvais choix pour un site web à fort trafic ?

1voto

Joseph Points 18099

Je ne vais pas répéter ce qui a déjà été dit ici, mais une autre solution consiste à utiliser le hachage de l'application. Elle doit être utilisée avec parcimonie, car elle consommera de la mémoire sur votre serveur web, comme Adam l'a déjà mentionné, mais elle constitue un bon moyen de mettre en cache des éléments qui sont communs à TOUS vos utilisateurs.

Cela vous évite de devoir retourner dans votre base de données pour récupérer des informations qui ont probablement déjà été demandées par quelqu'un d'autre.

Une autre alternative similaire à l'application est le cache, qui offre plus de flexibilité en termes de date de libération, de durée, etc.

Voici quelques liens au cas où vous seriez intéressés : ASP NET Caching État de la demande

1voto

John Points 904

Nous utilisons une base de données pour tout ce qui a un trafic important ou qui entraîne un état de session volumineux. Au lieu de cela, nous stockons un pointeur dans l'état de session réel qui pointe vers l'enregistrement de notre base de données. Le seul surcoût est alors la bande passante entre le serveur web et le serveur de base de données, qui sera bien moindre qu'entre n'importe quel utilisateur et le serveur web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X