SpringBoot中,如何使用Session共享实现分布式部署-

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

**开源地址:https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB **

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 中取出信息

四、打包测试

image

启动项目,分别启动在两个端口:

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

image.png

我们从 8080 端口,将信息保存在 session 中

我们访问:http://localhost:8081/get

image.png

我们在 8081 端口的项目中从 session 中取出了内容:hello world~~~

由此证明,我们的 session 共享已经成功

五、分布式部署

下面我们借助 nginx 代理转发访问这两个项目

1、配置转发

nginx 配置文件如下:

image

主要配置内容:

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、启动 nginx

nginx -s reload

3、访问测试

我们先删除 redis 里面刚刚测试保存的信息

image

然后我们访问:

http://localhost/set

image.png

这里我们可以看出,由 8080 端口的服务器完成了 set 请求,多次访问,nginx 将会根据什么配置的权重参数分配服务器来完成操作

下面我们访问:

http://localhost/get

image.png

可以看出,由 8081 端口的服务器完成了 get 请求,并成功取到了存在 session 中的数据,实现了 session 共享

六、总结

[外链图片转存中…(img-thuoimaT-1717488820206)]

可以看出,由 8081 端口的服务器完成了 get 请求,并成功取到了存在 session 中的数据,实现了 session 共享

六、总结

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值