org.springframework.boot spring-boot-starter-data-redis
org.springframework.boot spring-boot-starter-web
org.springframework.session spring-session-data-redis
二、配置 Redis
我们需要借助 redis 实现 session 共享,所以我们需要在配置文件中配置 redis 的信息
server:
port: 8080
spring:
redis:
host: 127.0.0.1
port: 6379
database: 0
password:
我们配置了该项目的端口,以及 redis 的连接信息
三、写接口
package com.zyxx.session.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpSession;
@RestController
public class DemoController { /**• 获取项目端口
/ @Value(“${server.port}”)
private String port; /*• 将信息存放在session中
/ @GetMapping(“set”)
public String set(HttpSession session) {
session.setAttribute(“user”, “hello world~~~”);
return port;
} /*• 从session中获取信息
*/ @GetMapping(“get”)
public String get(HttpSession session) {
return session.getAttribute(“user”) + " : " + port;
}
}
我们写了一个 set,一个 get 方法,将信息存放在 session 中,从 session 中取出信息
四、打包测试
启动项目,分别启动在两个端口:
java -jar .\session-0.0.1-SNAPSHOT.jar --server.port=8080
java -jar .\session-0.0.1-SNAPSHOT.jar --server.port=8081
分别启动在 8080,8081端口
访问:http://localhost:8080/set
我们从 8080 端口,将信息保存在 session 中
我们访问:http://localhost:8081/get
我们在 8081 端口的项目中从 session 中取出了内容:hello world~~~
由此证明,我们的 session 共享已经成功
五、分布式部署
下面我们借助 nginx 代理转发访问这两个项目
1、配置转发
nginx 配置文件如下:
主要配置内容:
upstream helloworld{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}