Spring全家桶之Spring Session实战教程

如题所述

第1个回答  2022-07-11

Spring Session 是Spring家族中的一个子项目,它提供一组API和实现,用于管理用户的session信息,它把servlet容器实现的httpSession替换为spring-session,专注于解决 session管理问题,Session信息存储在Redis中,可简单快速且无缝的集成到我们的应用中。

是指在一个浏览器访问多个 Web 服务时,服务端的 Session 数据需要共享。

通过对应用服务器的配置开启服务器的 Session 复制功能,在集群中的几台服务器之间同步 Session 对象,使得每台服务器上都保存所有的 Session 信息,这样任何一台宕机都不会导致 Session 的数据丢失,服务器使用 Session 时,直接从本地获取。这种方式的缺点也比较明显。因为 Session 需要时时同步,并且同步过程是有应用服务器来完成,由此对服务器的性能损耗也比较大。

利用 hash 算法,比如 nginx 的 ip_hash,使得同一个 Ip 的请求分发到同一台服务器上。 这种方式不符合对系统的高可用要求,因为一旦某台服务器宕机,那么该机器上的 Session 也就不复存在了,用户请求切换到其他机器后么有 Session,无法完成业务处理。

Session 记录在客户端,每次请求服务器的时候,将 Session 放在请求中发送给服务器, 服务器处理完请求后再将修改后的 Session 响应给客户端。这里的客户端就是 cookie。 利用 cookie 记录 Session 的也有缺点,比如受 cookie 大小的限制,能记录的信息有限, 安全性低,每次请求响应都需要传递 cookie,影响性能,如果用户关闭 cookie,访问就不正常。

Session 服务器可以解决上面的所有的问题,利用独立部署的 Session 服务器统一管理 Session,服务器每次读写 Session 时,都访问 Session 服务器。 对于 Session 服务器,我们可以使用 Redis 或者 MongoDB 等内存数据库来保存 Session 中的数据,以此替换掉服务中的 HttpSession。达到 Session 共享的效果。

本课程详细讲解Spring session如何解决集群模式/分布式/跨域环境下,实现session的同步共享问题,是构建大规模应用必须要考虑的一个问题。

SpringSession视频教程

https://www.bilibili.com/video/BV1iK411p7dZ

SpringSession资料下载

http://www.bjpowernode.com/?toutiao

•001.SpringSession: Session机制

•002.SpringSession: Session机制存放过程

•003.SpringSession: 集群后丢失Session原因

•004.SpringSession: Session共享方案介绍

•005.SpringSession: SpringSession介绍

•006.SpringSession: Session丢失演示

•007.SpringSession: 集成SpringSession实现Session共享

•008.SpringSession: Redis中的Session数据存放结构

•009.SpringSession: SpringSession使用场景

•010.SpringSession: 同域名下不同项目的Session共享

•011.SpringSession: 同根据域名不同二级子域名的Session共享

•012.SpringSession: 单点登录

•013.SpringSession: P2P项目Session共享

•014.SpringSession: SpringBoot集成SpringSession

相似回答
大家正在搜