spring-session 和 redis 解决 spring cloud 中 session 不一致性问题
使用 spring cloud 来搭建分布式。在搭建的时候会涉及到一个关键的问题,session 统一的问题。使用 zuul 作为网关转发来调用其他模块,zuul 中的 session 和其他模块的 session 会不一致,没法保存用户的信息,session 会存在问题。解决的办法采用的是 spring-session 和 redis。
1,引入 spring-session 和 redis 的包,zuul 网关和其他模块都需要引入
org.springframework.sessiongroupId> spring-session-data-redisartifactId> dependency> org.springframework.bootgroupId> spring-boot-starter-data-redisartifactId> dependency>2,开启 spring-session 和 redis 在 spring boot 的主类上开启 redis 管理 session 的注解,网关和其他模块都需要开启:
@EnableRedisHttpSession
3, 在 application.yml 配置 redis 网关和其他都需要配置
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
password: 12345 #redis 的密码
4,这样就差不多了,如有运行报没有序列化,请将实体类导入实现 Serializable
5,如果报找不到某个实体类 ,请在 zuul 中吧某个服务的实体类导入进来
重要的是: zuul 导入的实体类路径必须和 某个模块的实体类路径一样
列 : users 服务中我的实体类路径是 com.dx.userserver.pojo.User
那么· zuul 服务里 也要新建包名,是导入的实体类的路径是一样的
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于