conception de cohérence de session
Cohérence des sessions
Qu'est-ce qu'une session
Le serveur Web peut créer automatiquement des sessions pour les utilisateurs accédant au même navigateur et fournir des fonctions de stockage. Généralement, les informations de connexion de l'utilisateur sont stockées dans la session.
Quel est le problème de cohérence de session ?
Lorsqu'il n'y a qu'un seul serveur Web dans le backend, la session correcte peut être trouvée pour chaque requête http. Le problème est qu'il ne peut pas assurer la haute disponibilité. Si un serveur raccroche, ce sera terminé. Redondance + basculement, déployez plusieurs serveurs Web et routes nginx vers différents serveurs Web. Chaque requête http est acheminée et il n'est pas garanti qu'elle soit acheminée vers le même serveur, ce qui entraîne des problèmes de cohérence.
Solutions courantes pour résoudre la cohérence des sessions
Hash cohérent
La première solution qui vient à l'esprit est de hacher en fonction de l'adresse IP du client pour garantir que la même IP tombe sur le même site Web sur le serveur. Vous pouvez également utiliser des hachages basés sur des champs métier, tels que userId et cityId, qui sont plus flexibles à utiliser. Cependant, cela détruit le principe d’unicité et rend la passerelle et l’entreprise collantes. Il n’est pas recommandé de l’utiliser sauf si cela est nécessaire. Avantages : Enregistre le cache, peut être étendu horizontalement. Inconvénients : lorsque certains services sont redémarrés, les sessions seront perdues, ce qui obligera certains utilisateurs à se reconnecter. Si le hachage est étendu horizontalement et que la session est redistribuée après le rehachage, certains utilisateurs ne pourront pas acheminer la session
synchronisation de session
Les sessions entre plusieurs serveurs Web sont synchronisées les unes avec les autres , de sorte que chaque serveur Web contient toutes les informations de session. Inconvénients : Comme il contient toutes les sessions, le nombre de clusters est limité par la mémoire et l'extension est limitée.
Stockage du client
Les informations de connexion sont enregistrées sur le client et chaque demande contient des informations sur l'utilisateur. Le serveur est complètement apatride et facile à étendre. Avantages : Aucun stockage n’est requis côté serveur. Inconvénients : chaque requête http transporte des informations sur l'utilisateur, ce qui gaspille du trafic ; il existe un risque de fuite d'informations. Les cookies ne peuvent pas stocker trop d'informations.
Stockage centralisé back-end
Le serveur Web est lié à un stockage unifié pour enregistrer les informations de session. Il est recommandé de les stocker dans le cluster Redis pour faciliter l'expansion ultérieure. Avantages : Il n'y a aucun risque de fuite d'informations ; l'expansion horizontale ne perd pas de données. Inconvénients : Une requête réseau supplémentaire est ajoutée et le code métier doit être modifié pour interroger Redis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)