SpringBoot 如何实现Session共享

HttpSession,是通过Servlet容器创建并进行管理的,创建成功以后将会保存在内存中,这里将会使用Redis解决session共享的问题。

创建项目

SpringBoot 如何实现Session共享_第1张图片

添加pom

添加相关的maven



  4.0.0
  
    org.springframework.boot
    spring-boot-starter-parent
    2.3.1.RELEASE
     
  
  com.example
  demo
  0.0.1-SNAPSHOT
  demo
  Demo project for Spring Boot

  
    1.8
  

  
    
    
      org.springframework.boot
      spring-boot-starter-data-redis
      2.3.1.RELEASE
    
    
    
      io.lettuce
      lettuce-core
      6.0.0.M1
    
    
    
      redis.clients
      jedis
      3.3.0
    
    
    
      org.springframework.session
      spring-session-data-redis
      2.3.0.RELEASE
    
    
      org.springframework.boot
      spring-boot-starter-web
    

    
      org.springframework.boot
      spring-boot-starter-test
      test
      
        
          org.junit.vintage
          junit-vintage-engine
        
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  

配置redis连接

配置redis连接

spring:
 redis:
  database: 0
  host: 106.53.115.12
  port: 6379
  password: 12345678
  jedis:
   pool:
    max-active: 8
    max-idle: 8
    max-wait: -1ms
    min-idle: 0

创建Controller用来执行测试操作

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

@RestController
public class HelloController {
  @PostMapping("/save")
  public String saveName(String name, HttpSession session){
    session.setAttribute("name", name);
    return "8080";
  }

  @GetMapping("/get")
  public String getName(HttpSession httpSession){
    return httpSession.getAttribute("name").toString();
  }
}

Nginx 负载均衡

mingming@xiaoming-pc:~$ sudo apt-get install nginx

修改配置文件

upstream sang.com {
    server 192.168.0.1:8080 weight = 1;
    server 192.168.0.2:8080 weight = 1;
}


server {
    listen 80;
    server_name localhost;
    location / {
        proxy_pass http://sang.com;
        proxy_redirect default;
    }

}

请求分发

保存数据

SpringBoot 如何实现Session共享_第2张图片

获取数据

SpringBoot 如何实现Session共享_第3张图片

以上就是SpringBoot 如何实现Session共享的详细内容,更多关于SpringBoot 实现Session共享的资料请关注脚本之家其它相关文章!

你可能感兴趣的:(SpringBoot 如何实现Session共享)