收藏 分享(赏)

基于spring cloud分布式session共享.docx

上传人:cjc2202537 文档编号:5513392 上传时间:2019-03-06 格式:DOCX 页数:4 大小:17.88KB
下载 相关 举报
基于spring cloud分布式session共享.docx_第1页
第1页 / 共4页
基于spring cloud分布式session共享.docx_第2页
第2页 / 共4页
基于spring cloud分布式session共享.docx_第3页
第3页 / 共4页
基于spring cloud分布式session共享.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、分布式 Session 共享概念不同进程之间的 session 共享访问。解决了分布式系统或者系统集群部署时出现的问题: web 容器(如 tomcat)管理的 session 都存放于本地内存中无法共享,用户每次访问的服务器可能都不一样,因此出现服务器不能识别用户、用户登录状态失效等。解决方案:方案一:黏性 sessionNGINX 等负载均衡网关,可以通过 hash 映射等方式,保证相同用户的请求会转发到同一台服务器。优点:简单高效,易实施。缺点:存在大量请求转发到单点服务器极端情况导致负载均衡失效;单点故障导致用户 session 丢失。方案二:tomcat 集群 session 复制T

2、omcat 提供集群环境下的 session 复制功能,以达到 session 共享。优点:无开发工作量。缺点:session 复制会消耗大量服务器资源,只能应用于小规模的集群。方案三:Spring session + redis(推荐)Spring session 可以接管 web 容器的 session 管理,并可以将session 数据存放于 redis 等第三方存储。优点:Spring boot/cloud 项目无缝集成;可存储海量 session 数据;可以利用 redis 提供的持久化保证宕机恢复、服务升级重启用户session 不丢失;很好的支持服务在线扩容!缺点:Spring

3、session 没有多语言版本,限制了微服务框架下不同的技术选型。Spring boot/cloud 下的使用方法:1. 增加配置 redis 和 spring session 的配置spring.redis.host=127.0.0.1spring.redis.password=123456spring.redis.port=6379spring.session.store-type=redis2. 创建配置类,开启注解ConfigurationEnableRedisHttpSessionpublic class UserCenterSessionConfig Beanpublic Jedi

4、sConnectionFactory connectionFactory()return new JedisConnectionFactory();Spring Cloud 微服务项目中存在如下情况,导致 session 共享失效:1. Zuul 做 API 网关,转发时默认禁止传递 Cookie。需要开启Cookie 传递。# zuul 默认的 zuul.sensitive-headers 配置将过滤请求 header 的 Cookie、Set-Cookie、Authorization 三个属性,导致 cookie 无法传播。# 敏感头信息设置为空zuul.sensitive-headers

5、=2. Feigin 整合 Hystrix,仿 RPC 调用其他微服务接口。最终请求的发送是由另一个 Hystrix 线程完成的,与 Feign 不在同一个线程,导致请求头信息丢失,Cookie 传递失败。需要做请求拦截,手动添加。Configurationpublic class FeignConfig Beanpublic RequestInterceptor requestInterceptor()return new RequestInterceptor() Overridepublic void apply(RequestTemplate requestTemplate) String sessionId = RequestContextHolder.currentRequestAttributes().getSessionId();requestTemplate.header(“Cookie“, “SESSION=“ + sessionId);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报