Quel est l'avantage clé (en ce qui concerne l'évolutivité) du mécanisme de cache de cookie + en jeu 2.0 par rapport à Java Ee httSession?

StackOverflow https://stackoverflow.com/questions/9427486

  •  12-11-2019
  •  | 
  •  

Question

Je comprends que nous n'aimons pas conserver l'état de la session sur le serveur pour des raisons d'évolutivité en général, mais je ne vois tout simplement pas pourquoi l'approche prise par la lecture 2.0 serait mieux que la vieille école httpsession.

Une différence majeure que je vois est le fait que la mise en œuvre httppsession est fournie par le conteneur et, partant, les capacités de mise à l'échelle avec HTTPSession en dépend.

Était-ce utile?

La solution

Il y a un certain nombre d'avantages avec cela.En substance, le modèle de session en jeu favorise une architecture sans action.Cela signifie que chaque action que vous exécutez, que si vous suivez le modèle que le jeu favorise, est une demande reposante, l'exécution de l'action est entièrement autonome.Cela signifie que chaque demande peut être testée de manière individuelle et votre application construite comme un ensemble de fonctions discrètes.

Le principe ici, c'est que le couplage moins entre chaque action et l'état moins conversationnel qui est traité par une séance grasse, le nettoyant et le plus robuste votre code devient.

comme effet secondaire, vous avez également la mise à l'échelle facile en ajoutant plus de nœuds horizontalement, ce qui est généralement moins cher que la mise à l'échelle verticale et moins complexe et risquée que les sessions collantes.

Autres conseils

Utilisation d'une session gérée par le conteneur (et de son état encapsulé) signifie que lorsque vous souhaitez augmenter horizontalement, les systèmes impliqués devront également s'assurer qu'ils reproduisent cet état car votre application ne fonctionnera pas sans elle.Un client qui utilise votre application est effectivement lié au nœud particulier que l'utilisateur se trouve être dirigé vers.

contraste;Lorsque votre application maintient aucun état de session réel à un moment donné (comme votre application de lecture doit), il est très facile de mettre à l'échelle horizontalement: il suffit d'ajouter plus de nœuds qui exécutent l'application et assurez-vous que le serveur HTTP frontal connaît sur les nouveaux nœuds.Aucun algorithme de fantaisie et «plates-formes d'entreprise» pour reproduire et entretenir des sessions dans tous les nœuds.

Non, c'est en fait un peu plus compliqué que cela.La lecture pousse réellement une architecture d'application .Signification, vous ne stockez aucune donnée dans la session.Rien, sauf que les informations d'identification peuvent être stockées.

première règle : le stockage de la session est expulsé dans la base de données.Au lieu d'aller chercher des données de la session, obtenez-la de la base de données.L'évolutivité est une voie plus facile pour les bases de données que les applications JVM.

Deuxième règle : rien n'est stocké d'autres alors les informations d'identification.Signification, vous devrez transmettre des informations sinon pour les États de conversationnel.Il y a deux manières de faire cela.Utiliser des champs cachés, qui, à mon avis, n'est pas le meilleur moyen.Deuxièmement, utilisez des URL absolues.Créez une URL URL IDS contenant, recherches et autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top