| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Session共享问题-session原理 -> 正文阅读 |
|
[系统运维]Session共享问题-session原理 |
? ? ? ? ?问题1:微服务情况下。域名不同。session不共享 问题2:分布式系统下。同一个域名下,多个服务。session会出现不同步问题(例如第一次访问的是A服务,保存了。第二次访问了B,查询到的还是没信息) ?解决:1)、session复制(同步)
web-server
(
Tomcat
)原生支持,只需要修改配置 文件
缺点:
1.复制数据走网络,占用网络传输资源,降低了服务器处理业务能力
2.没台服务器总有饱和状态(手内存限制),没发水平扩展
3、大型分布下数据量太多。不适合。
?
2)、客户端存储
优点:服务器不存储,用户自己报错session信息到cookie中,节省服务端资源
缺点:cookie有长度限制4K,不能大量存储信息,数据不安全容易被窃取
? 3)、hash一致行 就是配合负载均衡记录客户端的ip路由到自己访问的服务器(ip求余)? 优点
只需要改
nginx
配置,不需要修改应用代码
?
负载均衡,只要
hash
属性的值分布是均匀的,多台 web-server的负载是均衡的
?
可以支持
web-server
水平扩展(
session
同步法是不行 的,受内存限制)
缺点
session
还是存在
web-server
中的,所以
web-server
重 启可能导致部分session
丢失,影响业务,如部分用户 需要重新登录
?
如果
web-server
水平扩展,
rehash
后
session
重新分布, 也会有一部分用户路由不到正确的session
但是以上缺点问题也不是很大,因为session本来都是有有效期的。
?4)、统一存储 就是用redis存储 优点: 没有安全隐患 可以水平扩展,一个redis不行就,做多个redis集群 服务器重启也不会有数据丢失 缺点: 增加了一次网络调用,增添代码。远程获取数据,比从内存中获取数据慢 代码就是Map集合存储 总结用SpringSession解决 ?以上4中解决方法前提都是在同一域名下。 针对不同域名,不同服务,子域session共享 ? ? 问题就是浏览器在做Cookie的时候会指定域名。源码就是HttpServletResponse 的addCookie方法的setDomain()方法。 response.addCookie(new Cookie("JESSIONID","dada").setDomain("")); SpringSession核心原理 SessionRepositoryFilter:
??? ?SessionRepositoryRequestWrapper wrappedRequest = new ?????SessionRepositoryRequestWrapper(request, response, this.servletContext); 包装原始的请求对象:装饰着模式 SessionRepositoryResponseWrapper wrappedResponse = new SessionRepositoryResponseWrapper( 包装原始的相应对象 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 2:16:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |