Solución sesión de racimo

sesión de estado del grupo de solución

En un entorno agrupado, las solicitudes podrán ser enviadas a un proceso de servidor diferente hacia arriba, esto conducirá, después de servidor de una multa, mientras que otras tareas se asignan a En el servidor B, sesión de servidor caso A no existe en el servidor en B, permitirá a los usuarios conectarse de nuevo, por lo que la experiencia del usuario no es ciertamente aceptable.

soluciones

  1. réplica de sesiones (si es un entorno de clúster es demasiado grande, no se recomienda)
  2. sesión de uso compartido
  3. Almacenada en la cookie (no se recomienda)

La manera de resolver el uso compartido de sesión

  • Entorno de prueba: la primavera de arranque + Redis
  • Chrome herramienta de prueba del navegador
  • Herramientas de desarrollo de la idea
  • herramientas de construcción de proyectos Maven

 

1: En primer lugar crear el proyecto springboot

    

<dependencias> 
        <dependency> 
            <groupId> org.springframework.boot </ groupId> 
            <artifactId> resorte de arranque-motor de arranque-Data-redis </ artifactId> 
        </ dependency> 
        <dependency> 
            <groupId> org.springframework.boot < / groupId> 
            <artifactId> resorte de arranque-motor de arranque en la web </ artifactId> 
        </ dependency> 

        <! - sesión de primavera核心依赖-> 
        <dependency> 
            <groupId> org.springframework.session </ groupId> 
            <artifactId> primavera-session-núcleo </ artifactId> 
        </ dependency> 
        <!--spring sesión操作ReDiS依赖-> --spring sesión ReDiS operación depende -> 
        <dependency>
            <groupId> org.springframework.session </ groupId> 
            <artifactId> primavera-Session-data-Redis </ artifactId> 
        </ dependency> 

        <dependency> 
            <groupId> org.springframework.boot </ groupId> 
            <artifactId> resorte de arranque-motor de arranque-test <artifactId /> 
            <scope> test </ scope> 
            <exclusiones> 
                <exclusión> 
                    <groupId> org.junit.vintage </ groupId> 
                    <artifactId> junit-vendimia-motor </ artifactId> 
                </ exclusión > 
            </ exclusiones> 
        </ dependency>
    </ dependencias>
@GetMapping ( " / get " )
     pública índice de cuerdas (HttpServletRequest solicitud) { 
        Nombre del objeto = request.getSession () getAttribute (. " Nombre " );
        regresar nombre! = nula ? " Éxito " : " falsa " ; 
    } 

    @GetMapping ( " set / " )
     pública índice de cuerdas (HttpServletRequest solicitud, HttpServletResponse respuesta) { 
        Nombre del objeto = request.getSession (). GetAttribute ( ");
        si ( nulo == nombre) 
            request.getSession () setAttribute (. " nombre " , " zs " );
        volver  " juego de éxito " ; 
    }

Springboot la ejecución de dos proyectos, uno en el puerto 8080, un puerto 8081, entorno de clúster de simulación

 

 

 8080,8081 puertos de acceso dos proyectos son falsas, no hay descripción de la sesión en este momento

 

 En este punto, después de una sesión valor ajustado manualmente, nueva visita para recibir, de retorno al éxito

 

 

 De acceso al puerto 8081 del proyecto

 

 Volver éxito, para explicar el éxito de la obtención de la sesión

 

Hay valor de sesión Redis simplemente depositada, la descripción de sesión para obtener un grupo exitoso.

 

  

Supongo que te gusta

Origin www.cnblogs.com/yjp372928571/p/12667519.html
Recomendado
Clasificación