SpringBoot 实现Session共享
HttpSession,是通过Servlet容器创建并进行管理的,创建成功以后将会保存在内存中,这里将会使用Redis解决session共享的问题。
创建项目
添加pom
添加相关的maven
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.3.1.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/io.lettuce/lettuce-core --><dependency><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId><version>6.0.0.M1</version></dependency><!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.3.0</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis --><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId><version>2.3.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
配置redis连接
配置redis连接
spring:redis:database: 0host: 106.53.115.12port: 6379password: 12345678jedis:pool:max-active: 8max-idle: 8max-wait: -1msmin-idle: 0
创建Controller用来执行测试操作
package com.example.demo;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpSession;@RestController
public class HelloController {@PostMapping("/save")public String saveName(String name, HttpSession session){session.setAttribute("name", name);return "8080";}@GetMapping("/get")public String getName(HttpSession httpSession){return httpSession.getAttribute("name").toString();}
}
Nginx 负载均衡
mingming@xiaoming-pc:~$ sudo apt-get install nginx
修改配置文件
upstream sang.com {server 192.168.0.1:8080 weight = 1;server 192.168.0.2:8080 weight = 1;
}server {listen 80;server_name localhost;location / {proxy_pass http://sang.com;proxy_redirect default;}}
请求分发
保存数据
获取数据
微信公众号
SpringBoot 实现Session共享相关推荐
- springboot实现session共享
目录 应用场景 如何解决 (1)应用场景 session是指多个http请求共享的会话.如果我们后台只有一个服务器,则不存在共享问题,但是在分布式/集群项目中,Session 共享则是一个必须 ...
- SpringBoot 分布式Session共享
一.在分布式开发时Nginx负载均衡时传统做法是 把session手动存到redis中 1.常用做法redis 客户端发起一个请求,这个请求到达nginx上之后被,nginx转发给tomcatA上,然 ...
- 【SpringBoot】18、SpringBoot中使用Session共享实现分布式部署
前言:我们知道,在单体项目中,我们将用户信息存在 session 中,那么在该 session 过期之前,我们都可以从 session 中获取到用户信息,通过登录拦截,进行操作 但是分布式部署的时候, ...
- SpringBoot一个依赖搞定Session共享,没有比这更简单的方案了!
作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 上一篇:推荐10个你不得不关注的NB技术公众号 有的人可能会觉得题目有点夸张,其实不夸张,题目没有使用任何修辞手法!认真读完本文,你 ...
- java分布式会话redis_详解springboot中redis的使用和分布式session共享问题
对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash.轮训.根据权重.随机等.不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomca ...
- C#session共享+redis_技术干货分享:基于SpringBoot+Redis的Session共享与单点登录
categories: 架构 author: mrzhou tags: SpringBoot redis session 单点登录 基于SpringBoot+Redis的Session共享与单点登录 ...
- Springboot整合Websocket遇到的坑_websocket session不支持序列化,无法存储至redis_Websocket相关问题总结(Session共享,用户多端登录等)
Springboot整合Websocket遇到的坑 一.使用Springboot内嵌的tomcat启动websocket 1.添加ServerEndpointExporter配置bean @Confi ...
- springboot配置shiro多项目实现session共享的详细步骤
springboot配置shiro多项目实现session共享的详细步骤 公司需要这样的需求: 有两个项目master 主项目.suiteone 项目,两个项目各自由shiro 安全框架管理,当不能登 ...
- Springboot集成社交登录功能(微博登录)以及Session共享
Springboot集成社交登录功能 pom <dependency><groupId>org.apache.httpcomponents</groupId>< ...
最新文章
- Java 线程 知识
- python多进程详解
- navicat对mysql的备份
- ssh-keygen
- 《图解机器学习-杉山将著》读书笔记---CH1
- python设置ini文件中的值_PyCharm设置python文件模板,自动读取文件信息。
- jQuery页面顶部下拉广告
- 第九十期:哪种人是软件设计中的稀缺型人才?
- C/C++中“空语句”的说明
- 【算法分析与设计】快速排序
- SQLite 增删改查
- oracle环境变量怎么配,oracle环境变量配置-Oracle
- wordpres报错sfile_exists() [function.file-exists]: File name is longer than the maximum allowed
- 7. F1方程式冠军
- Zabbix5.0监控CenterOS(RPM版)
- 查询活动开始时间和结束时间
- 双十二|Solidigm官方店铺 惊喜大放送 福利享不停
- C语言:实验11-1-2 输出月份英文名.2021-08-06
- 【cocos2d-x入门实战】微信飞机大战之十三:游戏场景过渡
- 极客日报:2021年年终奖人均水平为2.3万元;消息人士回应华为自研浏览器内核传闻;Linux取消对a.out格式的支持