*★如果文章对你有帮助【关注点赞❤️收藏⭐】一起努力!★*
六 个人主页:花棉袄
本章内容:【分布式Session解决方案】
✍ 版权: 本文由【花棉袄】原创在CSDN首发需要转载请联系博主
本章内容:【分布式Session解决方案】
✍ 版权: 本文由【花棉袄】原创在CSDN首发需要转载请联系博主
分布式session session 原理
- session存储在服务端,jsessionId存在客户端,每次通过jsessionid取出保存的数据
- 问题:但是正常情况下session不可跨域(不能跨域共享),它有自己的作用范围
解决方案- session要能在不同服务和同服务的集群的共享
- 用户登录后得到session后,服务把session也复制到别的机器上,显然这种处理很不好
- 根据用户,到指定的机器上登录,但是远程调用还是不好解决
- 最终的选择方案,把session放到redis中
- 通过SpringSession修改session的作用域
导入依赖
org.springframework.session spring-session-data-redis
配置SpringSession
spring.session.store-type=redis server.servlet.session.timeout=30m spring.redis.host=********
启动类添加注解
@EnableRedisHttpSession
配置文件:MySessionConfig
- 自定义 SpringSession 完成 Session 子域共享
@Component
public class MySessionConfig {
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
cookieSerializer.setDomainName("session.com");// 放大作用域
cookieSerializer.setCookieName("SESSION");
cookieSerializer.setCookieMaxAge(60 * 60 * 24 * 7);// 指定cookie有效期7天,会话级关闭浏览器后cookie即失效
return cookieSerializer;
}
@Bean
public RedisSerializer
登录接口
*★如果文章对你有帮助【关注点赞❤️收藏⭐】一起努力!★*
全栈小狐狸的逆袭之路:Java学习路线 往期文章:后端开发宝典



