问题根源
使用spring cloud来搭建分布式。在搭建的时候会涉及到一个关键的问题,session统一的问题。使用zuul作为网关转发来调用其他模块,zuul中的session和其他模块的session会不一致,没法保存用户的信息,session会存在问题。解决的办法采用的是spring-session和redis。
- 1,引入spring-session和redis的包,zuul网关和其他模块都需要映入:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 2,开启spring-session和redis
在spring boot的主类上开启redis管理session的注解,网关和其他模块都需要开启:
@EnableRedisHttpSession
- 3,配置redis,网关和其他模块都需要配置redis,如下:
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
password: 123456
jedis:
pool:
max-active: 8
timeout: 50000ms
网友评论