`
wiselyman
  • 浏览: 2093430 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82287
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130766
社区版块
存档分类
最新评论

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

<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

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一致的问题了。

 

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


3
2
分享到:
评论
2 楼 tongvip 2016-06-14  
不支持redis集群
1 楼 85600367 2016-01-22  
博主你好,
  请问各个app之间的session如何保持一致呢?通过博主的配置方式我已经可以在redis下看到sessionId等信息,可是我用eclipse和tomcat 同时启动2个应用来模拟负载均衡情况,及8080 8090 2个tomcat应用一样的代码实例,在2个端口下的应用登录后redis下会有2个sessionId,是否是我的测试思路不对?还是其他问题?我的session管理方式设置的是SessionCreationPolicy.IF_REQUIRED类型。期待你的回复,多谢!

相关推荐

    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所有,并且明确指出未经许可不得复制、存储或传输。这也体现了...

    spring boot实战教程之shiro session过期时间详解

    主要给大家介绍了关于spring boot实战教程之shiro session过期时间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    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整合Spring Batch,实现批处理

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

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

    Spring Boot一个依赖搞定 Session 共享

    Spring Boot揭秘 PDF

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

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

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

    Spring cloud和Spring boot介绍

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

    Spring Boot-实战

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

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

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

    《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权限管理

    Spring boot 示例 官方 Demo

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

Global site tag (gtag.js) - Google Analytics