none
Sticky Session MVC3 RRS feed

  • Pregunta

  • Que tal, estoy en la necesidad de tener que utilzar "Sticky Session", debido a que utilizo 2 servidores WEB, y cuando se cambia la carga de server, se pierden las sessiones de los usuarios.

    Estoy buscando como hacer la implementación, pero no encuentro algo en concreto, solo encuentro la funcionalidad que tiene como tal.

    Si alguien tiene un link o algo que compartir se agradece mucho.

    De antemano, muchas gracias por la ayuda ¡¡

    martes, 20 de agosto de 2013 15:36

Respuestas

  • Buenas!

    Simplemente una pequeña aclaración.

    Sticky Session no es lo mismo que grabar la sesión en base de datos (o en un servidor centralizado como pudiese ser el StateServer de ASP.NET).

    De hecho Sticky Sessions se implementa a nivel de NLB (balanceador de carga): La idea es que la primera petición de un usuario (generalmente a través de su IP) se enrute a uno de los servidores del webfarm. A partir de ahí todas las peticiones que haga este usuario serán enrutadas al mismo servidor. Esto tiene puntos a favor y en contra.

    A favor:

    • Se puede usar inproc session que es la que da mayor rendimiento

    En contra:

    • El NLB no puede balancear dinámicamente la carga. Imagina 1000 usuarios que son redirigidos 500 usuarios a cada servidor. Ahora si los 500 usuarios de un servidor hacen logout y se desconectan, nos queda un servidor atendiendo a 500 usuarios y otro sin atender a ninguno. Y el NLB no puede transferir usuarios de un servidor a otro.
    • Punto de fallo: Si se cae un servidor, los X usuarios asignados a él si podrán ser redirigidos a otro servidor pero entonces perderán la sesión.

    Así pues el concepto de Sticky Sessions es independiente de la tecnología usada (ASP.NET, PHP, RoR, JSP,...).

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marcado como respuesta MHP-86 miércoles, 21 de agosto de 2013 13:12
    miércoles, 21 de agosto de 2013 7:24

Todas las respuestas

  • hola

    la verdad no lo conocia como Sticky Session, sino simplemente definir la Session contra una base de datos

    Session-State Modes

    en tu caso usarias SQLServer

    CÓMO: Configurar SQL Server para almacenar el estado de la sesión de ASP.NET

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 20 de agosto de 2013 16:30
  • Muchas gracias,

    Actualmente ya lo tengo definido asi, pero cuando se hace el cambio de web, se sigue perdieron la session, veo que al guardar un dato en Session[] ya lo guarda en base de datos.

    El problema es que todos los usuarios conectados, al momento se hacer el balanceo pierden su session y se desconectan.

    Adicional a esta configuracion, se tiene que hacer algo extra ??

    Gracias, Saludos ¡¡

    martes, 20 de agosto de 2013 16:42
  • Buenas!

    Simplemente una pequeña aclaración.

    Sticky Session no es lo mismo que grabar la sesión en base de datos (o en un servidor centralizado como pudiese ser el StateServer de ASP.NET).

    De hecho Sticky Sessions se implementa a nivel de NLB (balanceador de carga): La idea es que la primera petición de un usuario (generalmente a través de su IP) se enrute a uno de los servidores del webfarm. A partir de ahí todas las peticiones que haga este usuario serán enrutadas al mismo servidor. Esto tiene puntos a favor y en contra.

    A favor:

    • Se puede usar inproc session que es la que da mayor rendimiento

    En contra:

    • El NLB no puede balancear dinámicamente la carga. Imagina 1000 usuarios que son redirigidos 500 usuarios a cada servidor. Ahora si los 500 usuarios de un servidor hacen logout y se desconectan, nos queda un servidor atendiendo a 500 usuarios y otro sin atender a ninguno. Y el NLB no puede transferir usuarios de un servidor a otro.
    • Punto de fallo: Si se cae un servidor, los X usuarios asignados a él si podrán ser redirigidos a otro servidor pero entonces perderán la sesión.

    Así pues el concepto de Sticky Sessions es independiente de la tecnología usada (ASP.NET, PHP, RoR, JSP,...).

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marcado como respuesta MHP-86 miércoles, 21 de agosto de 2013 13:12
    miércoles, 21 de agosto de 2013 7:24