`

Spring Boot 负载均衡之外置session状态保存

 
阅读更多

在使用spring boot做负载均衡的时候,多个app之间的session要保持一致,这样负载到不同的app时候,在一个app登录之后,而打到另外一台服务器的时候,session丢失。

 

常规的解决方案都是使用:如apache使用mod_jk.conf。

 

在开发spring boot app的时候可以借助 spring session 和redis,用外置的redis来存储session的状态。

 

直接上代码,我这边直接默认你使用spring boot,如果你是普通的spring web项目,请参照https://github.com/spring-projects/spring-session,在spring boot配置更简单

1、增加repository到pom.xml

Xml代码  收藏代码
  1. <repository>  
  2.           <id>spring-milestone</id>  
  3.           <url>https://repo.spring.io/libs-milestone</url>  
  4.       </repository>  

 

2、增加相关依赖

Xml代码  收藏代码
  1. <dependency>  
  2.         <groupId>org.springframework.boot</groupId>  
  3.         <artifactId>spring-boot-starter-redis</artifactId>  
  4.     </dependency>  
  5.   
  6. <dependency>  
  7.       <groupId>org.springframework.session</groupId>  
  8.       <artifactId>spring-session-data-redis</artifactId>  
  9.       <version>1.0.0.RC1</version>  
  10.       <type>pom</type>  
  11.     </dependency>  

 

 

3、RedisSessionConfig.java

Java代码  收藏代码
  1. package com.wisely.base;  
  2.   
  3. import org.springframework.context.annotation.Configuration;  
  4. import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;  
  5.   
  6. @Configuration  
  7. @EnableRedisHttpSession  
  8. public class RedisSessionConfig {  
  9.   
  10. }  

 

 

4、相关配置修改

在application.properties修改redis配置信息(请自行安装redis),请根据实际修改。如:

Java代码  收藏代码
  1. spring.redis.host=192.168.1.103  

 

 

5、所有实体类实现Serializable接口

Java代码  收藏代码
  1. public class SysResource implements Serializable  

 

6、查看效果

这时候登录系统在不同的app之间跳转的时候,session都是一致了,redis上可以看到:

 

7、总结

使用这些代码之后,无论你使用nginx或者apache,都无须在关心多个app之间的session一致的问题了。

 

分享到:
评论

相关推荐

    38. Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】

    Spring Boot提供了多种集成Session的解决方案,其中一种就是使用Redis作为Session的存储介质。Redis是一个高性能的键值数据库,支持丰富的数据结构,如字符串、哈希、列表、集合等,非常适合用来存储Session。 要...

    Spring Boot+Nginx实现负载均衡1

    Spring Boot+Nginx 实现负载均衡 在本文中,我们将介绍如何使用 Spring Boot 和 Nginx 实现负载均衡。负载均衡是指将 Incoming requests 分配到多个服务器,以提高系统的可扩展性和可靠性。使用 Spring Boot 和 ...

    Spring boot集成spring session实现session共享的方法

    Spring Boot 集成 Spring Session 实现 Session 共享的方法 Spring Boot 是目前流行的 Java 框架,它提供了许多便捷的功能和配置项,使得开发者可以快速构建项目。但是,在分布式环境中,Session 的共享变得非常...

    learning spring boot 2.0

    Spring Boot则是建立在Spring框架之上的,用于简化Spring应用的配置和部署。 内容摘录中提到了关于本书的版权声明,表明该书的版权归Packt Publishing所有,并且明确指出未经许可不得复制、存储或传输。这也体现了...

    2023最新《Spring Boot基础教程》

    全网内容最全,比收费教程更好的Spring Boot免费教程! 快速入门 Spring Boot 2.x基础教程:版本关系 Spring Boot 2.x基础教程:快速入门 Spring Boot 2.x基础教程:工程结构推荐 配置详解 Spring Boot 2.x基础教程...

    springcloud-负载均衡,服务注册demo

    在Spring Cloud生态系统中,"springcloud-负载均衡,服务注册demo"是一个典型的示例,它展示了如何在微服务架构中实现服务发现和服务间的负载均衡。本文将深入探讨这两个关键概念及其在Spring Cloud中的实现。 首先...

    spring_cloud_gateway负载均衡,动态路由

    spring cloud gateway的负载均衡和动态路由的实现 demo_01,demo_02,demo_03 这三个服务相当于是集群的微服务 gateway这个服务是 springcloude gateway + ribbon 做的负载均衡 gateway_01 这个服务 是动态路由的...

    nginx+redis负载均衡、session共享

    在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...

    Spring Boot + Spring Session + Redis

    标题 "Spring Boot + Spring Session + Redis" 涉及到的是在Java开发中,使用Spring Boot框架集成Spring Session和Redis来实现会话管理的技术方案。这个解决方案主要解决分布式系统中的session共享问题,使得用户在...

    Spring Boot揭秘 PDF

    Spring Cloud提供了服务发现、配置中心、负载均衡、熔断器等多种微服务治理功能。 书中对Spring Boot的启动原理进行了详细分析,包括如何加载配置、如何初始化Bean、自动配置的工作原理等,这些都是理解Spring Boot...

    Spring Boot一个依赖搞定 Session 共享.docx

    Spring Boot一个依赖搞定 Session 共享

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效批处理系统的一种常见方式。Spring Boot以其简洁的配置和快速的启动能力深受开发者喜爱,而Spring Batch作为Spring框架的一部分,专注于批量处理任务,...

    Spring boot 示例 官方 Demo

    spring-boot-helloWorld:spring-boot的helloWorld版本 spring-boot-mybaits-annotation:注解版本 spring-boot-mybaits-xml:xml配置版本 spring-boot-mybatis-mulidatasource:springboot+mybatis多数据源最简解决...

    最新Spring Boot Admin 官方参考指南-中文版-2.x

    Spring Boot Admin的用户界面是一个建立在Spring Boot Actuator端点上的Vue.js应用程序,这使得它能够方便地展示和管理Spring Boot应用的健康状态、日志、环境变量等信息。 在开始使用Spring Boot Admin之前,你...

    Spring Boot实战 ,丁雪丰 (译者).zip

    Spring Boot对于微服务架构也有很好的支持,书中可能会讲述如何使用Spring Cloud组件,如Eureka(服务发现)、Ribbon(客户端负载均衡)和Zuul(API网关),来构建分布式系统。此外,Spring Boot还支持Actuator,这...

    Spring cloud和Spring boot介绍

    Spring Cloud 建立在 Spring Boot 之上,利用其自动化配置的能力。 - **Spring Cloud 扩展功能**:相比于 Spring Boot,Spring Cloud 更加专注于全局的服务治理框架,包括服务发现、配置管理等高级特性。 - **依赖...

    Spring Boot-实战

    9. **微服务架构**:可能涉及如何使用Spring Cloud构建微服务,包括服务发现、配置中心、负载均衡、熔断机制等。 10. **最佳实践**:分享在实际开发中如何遵循最佳实践,提高代码质量和可维护性。 通过阅读...

    《Vue Spring Boot前后端分离开发实战》源码Vue+Spring Boot前后端分离开发实战教学课件(PPT)

    在现代Web应用开发中,Vue.js和Spring Boot的结合已经成为了一种常见的前后端分离架构模式。这本《Vue Spring Boot前后端分离开发实战》的源码提供了深入学习和实践这一技术栈的机会。以下是对其中涉及知识点的详细...

    从零开始学Spring Boot

    1.1 前言 1.2 资料官网 ...1.41 Spring Boot分布式Session状态保存Redis 1.42 Spring Boot Shiro权限管理 1.43 Spring Boot Shiro权限管理 1.44 Spring Boot Shiro权限管理 1.45 Spring Boot Shiro权限管理

Global site tag (gtag.js) - Google Analytics