} @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;
}
这里配置转发到 8080,8081 端口,并配置了权重
location / {
proxy_pass http://helloworld;
#root html;
#index index.html index.htm;
}
拦截本地的所有请求,默认端口为 80
2、启动 nginxnginx -s reload
3、访问测试我们先删除 redis 里面刚刚测试保存的信息
然后我们访问:
http://localhost/set
这里我们可以看出,由 8080 端口的服务器完成了 set 请求,多次访问,nginx 将会根据什么配置的权重参数分配服务器来完成操作
下面我们访问:
http://localhost/get
可以看出,由 8081 端口的服务器完成了 get 请求,并成功取到了存在 session 中的数据,实现了 session 共享
六、总【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】 浏览器打开:qq.cn.hn/FTf 免费领取
结
1、以前我们在 SSM 架构的项目中实现 session 共享,需要配置三个地方 ,一个是 web.xml 配置代理过滤器,然后在 Spring 容器中配置 Redis,最后再配置 Spring Session,相比 SpringBoot,稍有复杂
2、我们在 SpringBoot 中实现 session 共享还是非常简单的,只需要引入依赖,简单配置即可实现
理过滤器,然后在 Spring 容器中配置 Redis,最后再配置 Spring Session,相比 SpringBoot,稍有复杂
2、我们在 SpringBoot 中实现 session 共享还是非常简单的,只需要引入依赖,简单配置即可实现



