接上一篇:分布式6大核心专题_分布式Session
https://gblfy.blog.csdn.net/article/details/113802195
文章目录
- 1. 安装redis服务并启动
- 2. 引入Spring Session组件
- 3. 分别启动8081端口和8082端口
- 4. 调用8081登录接口
- 5. 调用8081获取用户信息接口
- 6. 调用8082获取用户信息接口
实现流程:
1.安装redis服务并启动
2.引入Spring Session组件
3.演示同一程序启动8081端口和8082端口模拟2个服务器分布式
4.调用8081登录接口
5.调用8081获取用户信息接口
6.调用8082获取用户信息接口
1. 安装redis服务并启动
docker run -d -p 6379:6379 redis:5
2. 引入Spring Session组件
存放查信息的容器有redis、jdbc、mongodb等,演示redis容器
pom
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency>
application.yml
spring:redis:host: 192.168.0.113 #ip地址port: 6379 #端口password: #密码session:store-type: redis #存放的容器timeout: 3600 #过期时间
server:port: 8081 #应用web端口
案例代码
package com.gblfy.distributedsession.controller;import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;@RequestMapping("/user")
@RestController
public class UserController {@GetMapping("/login")public String login(@RequestParam String username,@RequestParam String password,HttpSession session){//账号密码正确session.setAttribute("login_user", username);return "登录成功";}@GetMapping("/info")public String info(HttpSession session) {return "当前登录的是:" + session.getAttribute("login_user");}
}
3. 分别启动8081端口和8082端口
同上一篇
4. 调用8081登录接口
#登录接口
http://localhost:8081/user/login?username=admin&password=admin
5. 调用8081获取用户信息接口
#获取用户信息接口
http://localhost:8081/user/info
6. 调用8082获取用户信息接口
#获取用户信息接口
http://localhost:8082/user/info
测试结论:可以正常获取用户信息,关闭8081服务器,也是一样的,因为用户信息存放在redis服务端,不在应用本地,除非把redis关闭。