分布式 第六章 Spring Session


第一章 Session会话管理概述

造成丢失是因为后台服务器sessionid以及session对象存放位置问题。

(不同的Tomcat对应不同的JVM,Session容器中存放不通用的key、value)

在这里插入图片描述

Session会话共享方案

  • 使用容器扩展插件,如基于tomcat的tomcat-redis-session-manager(添加tomcat时要再配置一次)
  • 使用Nginx负载均衡的ip_hash策略(移动设备换ip时、hash取模后值相同导致服务器过载)
  • 写一套Session会话管理的工具类(不推荐,不如第一种,还不一定好用【考虑到各种情况】)
  • 使用框架的会话管理工具----Spring Session。不依赖tomcat容器不需要改动代码

第2章 Spring Seesion入门

特性

  • 提供用户session管理的API和实现
  • 提供HttpSession,以中立的方式取代web容器中的session,如tomcat中的session
  • 支持集群的session处理,不必绑定到具体的web容器去解决集群下的session共享问题

第3章 Spring Session常见的应用场景

1 同域名下相同项目(集群环境)实现Session共享

定义一个专门配置SpringSession的bean标签配置----类为RedisHttpSessionConfiguration

2 同域名下不同项目(集群环境)实现Session共享

cookie不允许跨路径访问,在Spring配置文件中设置,指定SpringSession的sessionId存放在域名的根路径下

<property name="cookiePath" value="/" />
3 同根域名不同二级子域名下的项目实现Session共享

cookie无法跨域名获取。适合用于Nginx下多态虚拟主机的多城市部署

<!--指定SpringSession的SessionId存放在跟域名下-->
<property name="domainName" value="myweb.com"/>
4 单点登录

不同的根域名下的项目实现Session共享,例如:淘宝网登录后,天猫商城也登录了

单点登录(Single Sign On),简称SSO。指定所有信任的网站到SSO系统中登录,返回一个token作为身份识别码,其他网站通过这个token去SSO中去检测

第4章 SpringBoot 集成Spring Session

添加依赖

<!--SpringBoot与Redis集成的起步依赖-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

<!--Spring Session 将数据存入Redis中的一个依赖-->
<dependency>
	<groupId>org.springframework.session</groupId>
	<artifactId>spring-session-data-redis</artifactId>
</dependency>

修改配置

spring.redis.host=192.168.52.128
spring.redis.port=6379
spring.redis.password=123456

#设置SpringSession的生命周期
#server.servlet.session.timeout=30m

#指定Cookie的存放路径为根路径,实现同域名下不同项目的session共享
#server.servlet.session.cookie.path=/

#指定Cookie的存放域名,实现同根域名不同二级子域名的session共享
#server.servlet.session.cookie.domain=myweb.com

server.port=9300

传送门

上一章:分布式 第五章 Nginx
下一章:分布式 第七章 FastDFS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值