文档章节

分布式框架spring-session实现session一致性使用问题

WALK_MAN
 WALK_MAN
发布于 09/19 00:59
字数 501
阅读 29
收藏 3

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取?

一、spring-session实现session一致性方式

用户每一次请求都会携带sessionId,用户登录时会根据sessionId去校验用户信息是否存在,浏览器端只要保证当前的cookie信息,获取     session信息保存在redis中,不依赖服务之间,所以就保证了session一致性

     

二、有状态和无状态

1、有状态bean:

每个连接都会创建单独的实例,在当前用户的生存周期内,实例中保存用户的信息,即有状态,一旦调用完成或者实例结束,bean的生命周期结束,每个连接都会得到一个初始化的bean

2、无状态bean:

bean一旦被实例化就会存在会话池中,所有的连接都可以共享,该实例由于没有指定被哪个对象调用,所以即使连接对象生命周期结束,该实例也不会被销毁,所以该实例被称为无状态的,

三、原因分析

这也就解释了为什么要在控制层获取session信息,服务层的对象是无状态的,初始化的时候会保存在会话池中(无状态bean设计的初衷是为了节省资源开销);而每一个访问请求都会创建一个独立的上下文对象,里面的信息是当前对象独享的,所以能保证获取用户session信息的完整性和正确性

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
WALK_MAN
粉丝 6
博文 45
码字总数 12114
作品 0
杭州
程序员
私信 提问
分布式Session一致性解决方案

1、session的作用? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢...

凌晨一点
08/14
0
0
SpringSession:分布式 session 实现方案及 SpringSession 功能分析

上一篇文章 SpringSession:集成SpringBoot 中介绍了如何在中来集成 ,整个过程非常简单,同时也简单分析了下的作用原理。继上一篇实践之后,本文主要来分析 的原理。 1、从 session 的一致性...

glmapper
11/24
0
0
Spring Boot 使用 Spring Session 集成 Redis 实现Session共享

Spring Boot 使用 Spring Session 集成 Redis 实现Session共享 《Spring Boot 2.0极简教程》—— 基于 Gradle + Kotlin的企业级应用开发最佳实践 通常在web开发中,Session 会话管理是很重要...

程序员诗人
04/17
0
0
次世代的会话管理项目 Spring Session

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文来自云+社区翻译社,由Tnecesoc编译。 会话管理一直是 Java 企业级应用的重要部分。不过在很长的一段时间里,这一部分都被我...

腾讯云加社区
06/26
0
0
iBase4J-JAVA分布式Web系统

iBas4J项目简介 iBase4J是基于Java的开源框架搭建的分布式系统架构。 使用Maven对项目进行模块化管理,提高项目的易开发性、扩展性。 系统包括两个模块:系统管理模块、调度管理模块、Web展示...

iBase4J
2016/06/15
6
0

没有更多内容

加载失败,请刷新页面

加载更多

mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
23分钟前
3
0

中国龙-扬科
26分钟前
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
55分钟前
13
0
基础编程题目集-7-13 日K蜡烛图

股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开...

niithub
今天
5
0
Jenkins window 下的安装使用

1.下载:https://jenkins.io/download/ 双击安装完毕,将自动打开浏览器: http://localhost:8080 打开对应位置的文件,将初始密钥粘贴至输入框。 第一个是 安装默认的软件;第二个是 自定义...

狼王黄师傅
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部