springcloud怎么实现Session共享
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容介绍了"springcloud怎么实现Session共享"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年02月02日springcloud怎么实现Session共享
本篇内容介绍了"springcloud怎么实现Session共享"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
通常情况下,Tomcat、Jetty等Servlet容器,会默认将Session保存在内存中。如果是单个服务器实例的应用,将Session保存在服务器内存中是一个非常好的方案。但是这种方案有一个缺点,就是不利于扩展。目前越来越多的应用采用分布式部署,用于实现高可用性和负载均衡等。那么问题来了,如果将同一个应用部署在多个服务器上通过负载均衡对外提供访问,如何实现Session共享?实现Session共享的方案很多,其中一种常用的就是使用Tomcat、Jetty等服务器提供的Session共享功能,将Session的内容统一存储在一个数据库(如MySQL)或缓存(如Redis)中。
下面我们将在springcloud微服务项目中,使用redis实现简单高效的session共享。
新建一个spring boot项目,命名springcloud-session-redis
POM依赖配置
4.0.0 com.carry springcloud-session-redis 0.0.1-SNAPSHOT jar springcloud-session-redis Demo project for Spring Boot org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE UTF-8 UTF-8 1.8 Finchley.SR1 org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis org.apache.commons commons-pool2 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-maven-plugin
配置文件
在application.yml中加入redis、eureka、port等配置,需要JAVA Spring Cloud大型企业分布式微服务
云构建的B2B2C电子商务平台源码:三五三六二四七二五九.
server: port: 8090spring: application: name: service-session-redis redis: host: 192.168.68.100 port: 6379 password: 123456 timeout: 6000ms lettuce: pool: max-active: 8 max-wait: -1ms max-idle: 8 min-idle: 0 database: 0eureka: client: serviceUrl: defaultZone: http://admin:123456@localhost:8761/eureka/management: endpoints: web: exposure: include: "*" cors: allowed-origins: "*" allowed-methods: "*"
Redis Session配置类
package com.carry.config;import org.springframework.context.annotation.Configuration;import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;@Configuration@EnableRedisHttpSessionpublic class RedisSessionConfig {}
控制层Controller中添加测试方法
package com.carry.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RefreshScopepublic class UserManagementController { /** * redis sesion共享 * * @param request * @return */ @GetMapping("/getUser") public String getUser(HttpServletRequest request) { HttpSession session = request.getSession(); String username = (String) session.getAttribute("username"); if (StringUtils.isEmpty(username)) { username = "testSessionRedis|" + System.currentTimeMillis(); session.setAttribute("username", username); } System.out.println("访问端口:" + request.getServerPort()); return username; }}
"springcloud怎么实现Session共享"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
服务
服务器
配置
内容
方案
应用
均衡
内存
就是
情况
更多
知识
项目
UTF-8
实用
学有所成
接下来
分布式
功能
单个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
社区数据库建设方案
西安erp软件开发要多少钱
河南服务器电源哪个品牌好
网络安全讲座新闻稿范文
大数据服务器维护公司
咸宁iptv服务器企业
服务器验签失败联系管理员
二次数据库
服务器HIC
fifa3数据库更新
石家庄应用软件开发服务诚信推荐
数据库的时间和空间怎么选
软件开发进度与品质的报告
学校网络安全普查总结
安徽专业软件开发如何收费
专业的模具软件开发价格
高拍仪请求服务器发生错误
服务器优化方法有哪些
瑶海区软件开发公司哪家好
网络安全我来讲
赴日软件开发面试问题
冬奥会网络安全检查
服务器ups电源线插排
新闻媒体数据库有哪些
数据库快照创建与查询
数据库校验数字大于0js
网络安全培训视频教程
数据库查询小数位数怎么设置
MySQL数据库实验三答案
数据库不是有效的数据库