Différence entre l'affinité de session et la session persistante?


126

Quelle est la différence entre l' affinité de session et la session persistante dans le contexte des serveurs d'équilibrage de charge?

Réponses:


82

J'ai vu ces termes utilisés de manière interchangeable, mais il existe différentes façons de l'implémenter:

  1. Envoyez un cookie sur la première réponse, puis recherchez-le sur les suivantes. Le cookie indique à quel serveur réel envoyer.
    Mauvais si vous devez prendre en charge des navigateurs sans cookies
  2. Partition basée sur l'adresse IP du demandeur.
    Mauvais si ce n'est pas statique ou si beaucoup arrivent par le même proxy.
  3. Si vous authentifiez les utilisateurs, partitionnez en fonction du nom d'utilisateur (il doit s'agir d'un mode d'authentification pris en charge par HTTP pour ce faire).
  4. Ne nécessite pas d'état.
    Laissez les clients frapper n'importe quel serveur (envoyez l'état au client et demandez-leur de le renvoyer)
    Ce n'est pas une session persistante, c'est un moyen d'éviter d'avoir à le faire.

Je soupçonnerais que sticky pourrait faire référence à la manière des cookies, et que cette affinité pourrait faire référence aux n ° 2 et 3 dans certains contextes, mais ce n'est pas comme ça que je l'ai vu utilisé (ou que je l'utilise moi-même)


6
Si une demande est liée à un serveur physique, que se passe-t-il si ce serveur échoue? Existe-t-il une stratégie pour utiliser le cookie pour contenir un serveur de basculement?
raffian

2
Si le serveur échoue, l'application échoue - vous devrez peut-être vous reconnecter. Peut-être avez-vous perdu des données. Habituellement, l'équilibreur de charge choisit un autre serveur et vous continuez, mais un état est perdu. Si cela n'est pas acceptable, vous devez obtenir l'état de la base de données ou d'autres serveurs aussi rapidement que possible ou avoir une stratégie sans état.
Lou Franco

FWIW Heroku les désigne comme le contraire. Session Afifinity est basée sur des cookies et ne prend pas en charge le sticky. devcenter.heroku.com/articles/session-affinity
RandallB

39

Comme j'ai toujours entendu les termes utilisés dans un scénario d'équilibrage de charge, ils sont interchangeables. Les deux signifient qu'une fois qu'une session est démarrée, le même serveur traite toutes les demandes pour cette session.


21

Une session persistante signifie que lorsqu'une demande arrive sur un site à partir d'un client, toutes les autres demandes sont dirigées vers la même demande client initiale du serveur accédée. Je crois que l'affinité de session est synonyme de session persistante.


13

Ce sont les mêmes.

Les deux signifient que lors de son entrée dans l'équilibreur de charge, la demande sera dirigée vers le serveur qui a servi la première demande (et a la session).


11

Session persistante signifie acheminer les demandes d'une session particulière vers la même machine physique qui a servi la première demande pour cette session.


3

Cet article clarifie la question pour moi et décrit d'autres types de persistance de l'équilibreur de charge.

Pensées de Dave: persistance de l'équilibreur de charge (sessions persistantes)


6
Apparemment plus disponible, mais il y a une copie dans la machine Wayback
Martin McNulty

12
C'est pourquoi vous ne postez pas simplement des liens sans explication
Juan Mendes

Nous avons constaté que le contenu du lien ci-dessus (qui n'est plus disponible maintenant) a été déplacé vers archive.li/SG4fA Il répertorie essentiellement les différents types de persistance pris en charge par l'équilibreur de charge F5.
aveek le

0

Ce sont des synonymes. Aucune différence du tout

Affinité de session / session collante:

L'affinité / la persistance / le contact entre la session utilisateur et le serveur auquel la demande de l'utilisateur est envoyée sont conservés.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.