1. 场景描述
因项目访问压力有点大, 需要做负载均衡, 但是登录使用的是公司统一提供的单点登录系统, 需要做 session 共享, 否则假如在 A 机器登录成功, 在 B 机器上操作就会存在用户未登录情况.
2. 解决方案
因项目是 springboot 项目, 采用 Springboot+Springsession+Redis 来实现 session 共享.
2.1 pom.xml 文件
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-Redis</artifactId>
- <version>1.4.7.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.session</groupId>
- <artifactId>spring-session-data-Redis</artifactId>
- </dependency>
2.2 springboot 中开启 session 支持
springboot 启动类添加 @EnableRedisHttpSession 标签来开启 spring session 支持, 代码:
- @EnableRedisHttpSession
- @SpringBootApplication
- public class SptestApplication {
- public static void main(String[] args) {
- SpringApplication.run(SptestApplication.class, args);
- }
- }
2.3 配置文件中增加配置项
在 application.properties 中增加配置项
- spring.Redis.host=10.192.168.13
- spring.Redis.port=6379
其他还有几个配置项, 不影响使用, 不详说了, 需要了解的可以查看 API.
来源: http://www.bubuko.com/infodetail-3122922.html