当项目部署到多台服务器的时候,此时就会出现服务器的session共享问题,就比如:当用户请求A服务器登录了,服务器A存储了用户的session;当用户再次请求服务器B的时候,此时用户在服务器B上也就获取不到A中一样的JSessionID。
那么如何实现session共享呢
此时我们可以实现一个服务器用于存储session。不管用户访问的是服务器A还是服务器B,此时的session是相同的,也就是共享的。
实现方法如: Redis(基于内存的,读写快)
实现步骤
1.导入Redis依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.5</version>
</dependency>
2.配置Redis
# redis 配置
redis:
port: 6379
database: 0 # 第0个数据库
url: localhost
3.导入spring boot 对于session和Redis的整合依赖(自动把session存入到Redis中)
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
4.设置session type
session:
timeout: 86400
# 配置session存储位置
store-type: redis