Springboot Session集群处理

  在集群环境下,常见的基于Session的身份认证就会有一个问题,因为Session是跟着服务器走的,当用户在服务器1登陆成功后,当用户在访问服务器2的时候会因为服务器2没有用户的身份信息而再次跳转到认证页面。解决的方案很简单,不在服务器上单独的管理Session,而是把原本放在服务器上的Session抽离出来放在一个独立的存储中。

  ⒈使用spirng-session解决Session集群问题

    我们只需要告诉spirng-session存放Session的独立存储是什么,以及独立存储的连接信息即可。spirng-session支持以下类型  

 1 package org.springframework.boot.autoconfigure.session;
 2 
 3 public enum StoreType {
 4     REDIS,
 5     MONGODB,
 6     JDBC,
 7     HAZELCAST,
 8     NONE;
 9 
10     private StoreType() {
11     }
12 }

    我使用Redis作为示例。一般的生产环境也是Redis,因为1.Redis天生支持过期机制。2.Session的读取是非常频繁的,Redis的实力你我都知道的。

 

1         <dependency>
2             <groupId>org.springframework.session</groupId>
3             <artifactId>spring-session</artifactId>
4             <version>1.3.4.RELEASE</version>
5         </dependency>
1 spring.session.store-type=redis
2 spring.session.redis.host=127.0.0.1
3 spring.session.redis.port=6379

 

    

  

  

posted @ 2019-04-05 11:37  SpringCore  阅读(744)  评论(0编辑  收藏  举报