Spring Boot 负载均衡之外置session状态保存
在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而打到另外一台服务器的时候,session丢失。
常规的解决方案都是使用:如apache使用mod_jk.conf。
在开发spring boot app的时候可以借助 spring session 和redis,用外置的redis来存储session的状态。
1、增加repository到pom.xml
- <repository>
- <id>spring-milestone</id>
- <url>https://repo.spring.io/libs-milestone</url>
- </repository>
2、增加相关依赖
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-redis</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.session</groupId>
- <artifactId>spring-session-data-redis</artifactId>
- <version>1.0.0.RC1</version>
- <type>pom</type>
- </dependency>
3、RedisSessionConfig.java
Java代码- package com.wisely.base;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
- @Configuration
- @EnableRedisHttpSession
- public class RedisSessionConfig {
- }
4、相关配置修改
在application.properties修改redis配置信息(请自行安装redis),请根据实际修改。如:
- spring.redis.host=192.168.1.103
5、所有实体类实现Serializable接口
- public class SysResource implements Serializable
6、查看效果
这时候登录系统在不同的app之间跳转的时候,session都是一致了,redis上可以看到:
7、总结
使用这些代码之后,无论你使用nginx或者apache,都无须在关心多个app之间的session一致的问题了。
Spring Boot 负载均衡之外置session状态保存的更多相关文章
- 玩转spring boot——负载均衡与session共享
前言 当项目上线后,如果要修复bug或扩充功能,都需要重启tomcat服务.此时,正在使用应用的用户们就需要等待服务器的重启,而这就会造成不好的用户体验.还有,当仅仅只有一台tomcat服务时,如果 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- 负载均衡中的session保持
什么叫负载均衡中的session保持 当我们需要做负载均衡时,服务端肯定有多台服务器,用户每次请求进来,会根据负载均衡算法被分配到某一台机器上,假设用户需要进行一段连续操作时,在第一台机器登陆后,下一 ...
- 如何运用PHP+REDIS解决负载均衡后的session共享问题
一.为什么要使用Session共享? 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的 ...
- Spring Cloud 负载均衡初体验
目录 服务搭建 1.注册中心--Eureka Server 2.服务提供方--Service Provider 3.服务消费方--Service Consumer 服务消费 Feign 与断路器 Hy ...
- Spring Cloud负载均衡:使用zuul作服务器端负载均衡
1.目的: 本文简述Spring Cloud负载均衡之服务器负载均衡模式,使用组件为zuul. zuul作为Spring Cloud中的网关组件,负责路由转发.身份验证.请求过滤等等功能,那么我们可以 ...
- linux+nginx+tomcat负载均衡,实现session同步
linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...
- Spring Boot Security 整合 JWT 实现 无状态的分布式API接口
简介 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案.JSON Web Token 入门教程 - 阮一峰,这篇文章可以帮你了解JWT的概念.本文重点讲解Spring Boo ...
- Spring Boot → 09:使用外置Servlet容器_tomcat9.0
Spring Boot → 09:使用外置Servlet容器_tomcat9.0
随机推荐
- backdrop-filter 和filter 写出高斯模糊效果 以及两者区别
http://www.w3cplus.com/css3/advanced-css-filters.html: backdrop-filter:blur(10px);只支持ios端:只作用于当前元素: ...
- Jquery一些实用函数
1.jQuery.parseJSON( json )第一个参数json的类型是字符串: var obj = jQuery.parseJSON( '{ "name": "J ...
- 【HDOJ 2150】线段交叉问题
Pipe Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- spring的MVC执行原理
spring的MVC执行原理 1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作. 2.DispatcherSer ...
- node.js系列:(调试工具)node-inspector调试Node.js应用
如果你在编写Node.js代码,node-inspector是必备之选,比Node.js的内置调试器好出许多.使用起来跟Chrome的javascript调试器很相似. 使用npm安装: $ npm ...
- IEnumerable<T>和IQueryable<T>
建议29.区别LINQ查询中的IEnumerable<T>和IQueryable<T> LINQ查询方法一共提供了两类扩展方法,在System.Linq命名空间下,有两个静态类 ...
- JS存在性
var myObject = { a:2 }; ("a" in myObject);//true ("b" in myObject);//false myObj ...
- css 画出三角形
技术分享不一定行文累赘 这里说说最简洁的 css 画出三角形 display: inline-block; border: 10px dashed transparent; border-left: ...
- python基础教程第二版 第一章
1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...
- Angularjs快速入门(一)
这系列是看<用angularjs开发下一代web应用>的笔记. angular也接触几个月,总觉得不甚明白,写起来总是不那么如意.希望这本书看完了可以改变现在的状况.好了废话不多说开始: ...