`

微服务分布式session共享解决方案

 
阅读更多

有3种解决的方案:

 

1.tomcat的session共享

优点:不需要额外开发,只需搭建tomcat集群即可

缺点:tomcat 是全局session复制,集群内每个tomcat的session完全同步保存着全部的session, 在大规模应用的时候,用户过多,集群内tomcat数量过多,session的全局复制会导致集群性能下降, 因此,tomcat的数量不能太多,而且依赖tomcat容器移植性不好(所以不采用)

 

2.用cookie同步session 

这种完全把客户的登陆信息保存在客户端的cookie中,每次请求带着cookie中的Token

优点:由于完全舍弃了session 会减轻服务器端的压力。

缺点:是把信息暴露在外,就算有加密算法还是存在安全问题。禁止使用cookie的情况下无效。

 

3.redis 集中管理session(常用的方式)

优点:redis为内存数据库,读写效率高,并可在集群环境下做高可用

 

下面就介绍下第三种的实现方式 spring boot 整合 redis session 做的session共享

 

一、加入依赖

<!-- redis 依赖 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- session redis 共享 -->
<dependency>
     <groupId>org.springframework.session</groupId>
     <artifactId>spring-session-data-redis</artifactId>
</dependency>

 

二、yml文件

server:
  port: 8080
  
spring:
  application:
    name: test-session
    
  redis:
    password: 12345678
    database: 0
    host: 127.0.0.1
    port: 6379

 

三 启动类加入 @EnableRedisHttpSession

 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@EnableEurekaServer
@SpringBootApplication
@EnableRedisHttpSession
public class EurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApplication.class, args);
	}
}

 

 

 

分享到:
评论

相关推荐

    分布式session 共享

    分布式Session共享的解决方案通常包括中央化Session存储、基于Token的身份验证、或者利用特定的协议如JWT(JSON Web Token)等。这里提到了"下载即运行[9]",这可能是指提供了一个示例或工具包,让用户可以直接下载...

    spring session redis分布式session

    为了解决这个问题,Spring Session提供了一种优雅的解决方案,特别是结合Redis作为持久化存储时,可以实现高效的分布式Session管理。本文将详细介绍Spring Session与Redis集成,以及如何自定义Session来应对分布式...

    【JeeSpringCloud v3.2.4】后台权限管理系统+互联网云快速开发框架+微服务分布式代码生成.zip

    单点登录:使用shior和Redis、共享session方式实现单点登录。 Redis分布式高速缓存:代码生成直接生成Redis对接代码。 特性: JeeSpringCloud基于SpringBoot+SpringMVC+Mybatis+Redis+SpringCloud+Vue.js微服务分布式...

    基于springcloud分布式session共享.docx.docx

    在分布式系统环境中,Session共享...以上是Spring Cloud环境下实现分布式Session共享的基本原理和常见问题的解决方案。正确配置和使用这些策略,能够确保用户在分布式系统中的体验一致性,提升系统的健壮性和可扩展性。

    tomcat集群session共享解决方案

    本篇文章将深入探讨Tomcat集群中session共享的解决方案,以及相关的应用知识。 1. **Session复制**:这是最基础的session共享方法。通过配置Tomcat的`cluster`模块,可以设置session复制策略。每当一个session在...

    【JeeSpringCloud v3.2.4】后台权限管理系统+互联网云快速开发框架+微服务分布式代码生成

    单点登录:使用shior和Redis、共享session方式实现单点登录。 Redis分布式高速缓存:代码生成直接生成Redis对接代码。 特性: JeeSpringCloud基于SpringBoot+SpringMVC+Mybatis+Redis+SpringCloud+Vue.js微服务分布式...

    43_说说你们的分布式session方案是啥?怎么做的?.zip

    分布式Session方案是现代大型Web应用中解决用户会话管理的关键技术。随着互联网应用规模的不断扩大,单体应用逐渐被拆分为多个微服务,这使得传统的Session管理方式——将Session存储在单个应用服务器的内存中——变...

    秒杀项目之服务调用&分布式session对应的完整项目

    1. **Session共享**:在微服务架构中,用户可能需要跨服务访问其Session数据,这就需要一种共享Session的机制。常见的解决方案有:使用数据库存储Session、Redis存储Session、基于Token的Session管理等。 2. **...

    Redis、springSession共享包

    总的来说,Redis 和 SpringSession 结合使用可以提供一个健壮的分布式 Session 管理解决方案。通过将 Session 存储在 Redis 中,可以轻松地在多服务器之间共享用户状态,从而提升系统的可扩展性和用户体验。在实际...

    阿里P7大牛实战演练到源码透析——分布式环境session丢失爬坑记

    ### 分布式环境中Session丢失问题解析与解决方案 #### 一、引言 在现代互联网应用中,随着业务规模的增长和技术架构的演进,单体应用逐渐演化为微服务架构,而这种架构变化带来的一个常见问题是分布式环境下的...

    shiro redis session共享

    标题“shiro redis session共享”涉及的是Web应用中关于用户会话管理的技术,主要集中在Apache Shiro框架和Redis缓存...总的来说,Shiro结合Redis是一种有效且常见的session共享解决方案,尤其适用于分布式微服务架构。

    ssm demo(通过redis解决session共享的问题)

    综上所述,SSM Demo是一个综合性的Java Web应用实例,涵盖了从Web开发框架到分布式服务的多个关键知识点,通过Redis实现Session共享,展示了在复杂网络环境中维持用户会话一致性的解决方案。同时,Maven、Tomcat和...

    nginx+springboot+dubbo +redis session共享

    标题提到的"nginx+springboot+dubbo +redis session共享"是一个常见的解决方案,它结合了多种技术来处理web应用中的会话管理。下面将详细阐述这些技术及其在session共享中的作用。 首先,`Nginx`是一个高性能的反向...

    详解Spring Cloud微服务架构下的WebSocket解决方案

    在本文中,我们详解了 Spring Cloud 微服务架构下的 WebSocket 解决方案,包括微服务架构下的 WebSocket 解决方案、WebSocket 的 session 共享、解决 WebSocket 连接的节点问题、技术选型和使用方法。希望本文能够对...

    tomcat7/tomcat8+redis 实现session共享

    "tomcat7/tomcat8+redis 实现session共享"这个主题就解决了这个问题,它通过集成Redis和Nginx来构建一个跨服务器的Session共享解决方案。 首先,Redis是一个开源的、基于键值对的数据存储系统,广泛用于缓存和消息...

    springbootsso-session共享.zip

    而在大型分布式系统中,Spring Cloud提供了微服务治理的一系列解决方案,包括服务注册与发现(Eureka)、API网关(Zuul)等。本项目"springbootsso-session共享.zip"就是基于Spring Boot和Spring Cloud构建的单点...

    spring-session实现session共享

    在现代分布式系统中,由于多服务器、微服务架构的广泛应用,Session共享成为一个重要的需求。传统的HTTP Session机制在单服务器环境下工作良好,但当涉及到跨域、多服务器间的用户状态同步时,其局限性就显现出来。...

    互联网系统垂直架构之Session解决方案

    Spring框架提供了更高级的Session管理功能,如Spring Session,支持分布式Session存储。 总结,Session在互联网系统垂直架构中的管理是复杂而重要的。选择合适的Session解决方案需要综合考虑系统的规模、性能需求和...

    Tomcat+Redis集群Session共享所需jar

    标题中的"Tomcat+Redis集群Session共享所需jar"指出,这是一个关于使用Redis集群来实现Tomcat服务器中的Session共享的解决方案。在分布式系统中,Session共享是确保用户在不同服务器之间切换时仍然保持登录状态的...

    spring session实现分布式会话管理

    Spring Session 是一个开源项目,由 Pivotal 团队维护,它旨在提供一种在分布式环境中管理用户会话的解决方案。Spring Session 的核心理念是将传统的 HTTP Session 数据存储和管理从应用服务器迁移到更灵活、可扩展...

Global site tag (gtag.js) - Google Analytics