16 分布式session和无状态的会话

news/2025/1/30 17:57:01/

在我们传统的应用中session存储在服务端,减少服务端的查询压力。如果以集群的方式部署,用户登录的session存储在该次登录的服务器节点上,如果下次访问服务端的请求落到其他节点上就需要重新生成session,这样用户需要频繁的登录。

nginx使用ip hash的方式代理服务

当nginx使用该方式代理请求转发时,相同ip的用户请求会落到相同的机器上,这样就可以避免了频繁的登录。
该方式部署简单,在nginx上做相应的配置即可。该方案缺乏容错性,如果用户请求的机器发生故障,请求就会落到其他的节点上,session就会失效。适用于发生故障对用户影响小,并且服务器发生概率低的场景。

服务端的session复制
web容器在session发生改变的时候都会把session序列号并广播到其他web容器,以此来保证session的同步。
该方案保证了容错性,如果在用户量很大的情况下网络会成为同步的瓶颈,整个集群的性能会受到严重的影响。
如果使用tomcat作为web容器的情况下,设置server.xml开启tomcat的集群同步功能

session共享

使用中间件存储session信息。一般使用redis集群或memcached,中间件一般使用集群部署的方式,防止单点故障

session持久化
把session持久化到数据库中,该方案在用户量很大的情况下会对数据库造成很大的压力

terracotta实现session复制

terracotta实现的session复制只是在session的变化部分复制到terracotta服务器,并且各个节点和terracotta保持tcp连接。这样避免了网络的压力,并实现了灾难恢复的功能。


http://www.ppmy.cn/news/1567939.html

相关文章

双层Git管理项目,github托管显示正常

双层Git管理项目,github托管显示正常 背景 在写React项目时,使用Next.js,该项目默认由git托管。但是我有在项目代码外层记笔记的习惯,我就在外层使用了git托管。 目录如下 code 层内也有.git 文件,对其托管。 我没太在意&…

使用CSS快速居中div的七种方法

方法一:Flex布局 使用Flex布局是最简单的方法之一。只需在父容器中添加display: flex、justify-content: center和align-items: center即可实现水平和垂直居中。 .flex-container {display: flex;justify-content: center;align-items: center;height: 100vh;back…

<keep-alive> <component ></component> </keep-alive>缓存的组件实现组件,实现组件切换时每次都执行指定方法

<keep-alive> <component :is"currentRouter" :key"currentRouter"></component> </keep-alive>缓存的组件实现组件切换时子组件每次都执行指定的方法 // 父组件<keep-alive><component :is"currentRouter" :…

Zookeeper入门部署(单点与集群)

本篇文章基于docker方式部署zookeeper集群&#xff0c;请先安装docker 目录 1. docker初期准备 2.启动zookeeper 2.1 单点部署 2.2 集群部署 3. Linux脚本实现快速切换启动关闭 1. docker初期准备 拉取zookeeper镜像 docker pull zookeeper:3.5.6 如果拉取时间过长&#xf…

C#如何通过使用XpsToPdf库来转换xps为pdf文件

文章目录 英文描述中文描述 XpsToPdf库地址 调用方法&#xff1a; 英文描述 Output to PDF in WPF (for free!) There are two general strategies to outputting to a PDF in WPF. One is to output directly to a PDF which requires you traverse a visual or flow docum…

【四川乡镇界面】图层shp格式arcgis数据乡镇名称和编码2020年wgs84无偏移内容测评

本文将详细解析标题和描述中提到的IT知识点&#xff0c;主要涉及GIS&#xff08;Geographic Information System&#xff0c;地理信息系统&#xff09;技术&#xff0c;以及与之相关的文件格式和坐标系统。 我们要了解的是"shp"格式&#xff0c;这是一种广泛用于存储…

android studio生成jsk

JKS 文件&#xff08;Java KeyStore&#xff09;是 Android 开发中用于签名 APK 的密钥库文件。它包含用于签名的私钥和公钥&#xff0c;并保护其不被未授权使用。 在 Android 开发中&#xff0c;所有的 APK 文件在发布之前必须使用签名密钥进行签名&#xff1a; 调试签名&am…

抠图神器,全离线使用,支持win和mac

互联网各领域资料分享专区(不定期更新)&#xff1a; Sheet 前言 由于内容较多&#xff0c;且不便于排版&#xff0c;为避免资源失效&#xff0c;请用手机点击链接进行保存&#xff0c;若链接生效请及时反馈&#xff0c;谢谢~ 正文 链接如下&#xff08;为避免资源失效&#x…