web-dev-qa-db-fra.com

Quel est l'inconvénient de sessions collantes avec des équilibreurs de charge?

Nous avons une ferme Web de machines IIS7 qui fonctionnent bien. Devant eux est un F5 BIG-IP Balanceur de charge matérielle, fonctionnant également bien :)

alt text
(Source: www.f5.com )

Actuellement nous utilisons un ASP.NET State Service Pour gérer notre Outproc état. Cela est nécessaire lorsque vous avez une ferme Web pour maintenir tout type d'informations de session.

Je me demandais si nous pouvions avoir sessions collantes sur la Big-IP F5 et donc changer de surproc à INPROC? Si oui, quelle est la baisse de cela? Je connais l'inconvénient de Inproc vs surproc, alors ne vous inquiétez pas pour l'expliquer. Je suis plus intéressé par le avantages/inconvénients de sessions collantes avec F5 Big-IP.

Quelqu'un peut-il perdre de la lumière et/ou de l'expérience?

13
Pure.Krome

Il y a deux descentes principales:

  1. Votre charge n'est pas uniformément distribuée. Les sessions collantes vont rester, d'où le nom. Bien que les demandes initiales soient distribuées de manière uniforme, vous pouvez vous retrouver avec un nombre important d'utilisateurs dépenser plus de temps que d'autres. Si tous ceux-ci sont initialement définis sur un seul serveur, ce serveur aura beaucoup plus de charge. Typiquement, cela ne va pas vraiment avoir un impact énorme et peut être atténué en ayant plus de serveurs dans votre cluster.

  2. Les proxies conglomérat des utilisateurs en une IP unique, qui seraient tous envoyés à un seul serveur. Bien que cela ne préjuche généralement aucun préjudice, encore autre que d'augmenter les charges de serveurs individuels, les procurations peuvent également fonctionner dans un cluster. Une demande dans votre F5 à partir d'un tel système ne serait pas nécessairement renvoyée au même serveur si la demande sort d'un serveur proxy différent de leur groupe de proxy.

AOL était à un moment donné en utilisant des grappes proxy et vraiment vissé d'équilibreurs de charge et de sessions collantes. La plupart des équilibreurs de charge offriront désormais des sessions collantes basées sur des gammes nettes de classe C, ou avec le cas de sessions collantes basées sur la F5, à base de cookie qui stockent le nœud de fin dans un cookie de demande Web.

Les sessions basées sur les cookies devraient fonctionner, j'ai eu des problèmes avec eux et choisissez généralement des sessions IP. Big Toutefois: Je travaille surtout sur les applications internes - DMZ Milage peut varier.

Tout ce qui étant indiqué, nous avons eu un grand succès avec les sites qui dirigent Behing F5 avec des sessions collantes et des sessions in-processus.

Vous voudrez peut-être également jeter un coup d'œil à l'un des systèmes de mise en cache distribués dans la mémoire, tels que MemCached ou Velocity pour une alternative à la session étant stockée dans SQL ou sur le service de mémoire de PROC. Vous vous approchez de la vitesse de la mémoire in-processus avec la possibilité de l'exécuter sur plusieurs serveurs.

15
Christopher_G_Lewis

J'ai récemment lu un excellent article dans TechNet concernant "Fournir une évolutivité pour les applications ASP.NET". Il est allé dans les avantages et les inconvénients de chaque solution possible. Prendre une lecture:

TechNet juin 2009 - Fournir une évolutivité des applications ASP.NET

5
rojay12

En plus de l'excellente réponse de Christopher, des sessions collantes signifient que vous avez perdu quelques-unes des énormes avantages des serveurs redondants - la capacité de prendre une ou plusieurs fois pour la maintenance et la transparence face à la défaillance du système.

Je considère que des sessions collantes un fort indicateur de mauvaise architecture d'application et/ou une programmation médiocre. "Éviter à tout prix" est ma devise.

4
womble