Tomcat集群session管理解决方案(关于sticky session、session replication与使用memcached缓存session)

运维视角深度解析:Cookie与Session机制、安全配置与性能优化实战 在Web应用开发中,状态管理是构建交互式应用的核心基础。HTTP协议本身是无状态的,为了在多个请求间跟踪用户状态,引入了Cookie和Session机制。Cookie作为存储在客户端的小型数据片段,由服务器通过Set-Cookie头部设置,浏览器会在后续请求中自动携带,其关键属性如Secure、HttpOnly、SameSite直接关系到应用的安全性。Session则是服务器端用于存储用户状态信息的机制,通过唯一的Session ID与客户端的Cookie关联,解决了HTTP无状态的问题。从技术价值看,合理 阅读详情

本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7641714 ,转载请注明出处!


提要:本文主要的写作目的是解释集群方案中的一些重要的概念,然后引入另一种session管理机制:基于缓存的session管理。本文并不讲述如何配置apache和tomcat来实现集群和负载均衡,关于这方面内容,可参考我的另一篇文章:Linux下搭建tomcat集群全记录


1.实现应用服务器集群需要解决那些问题?


对于所有的应用服务器集群来说,都需要解决两个最基本也是最核心的问题:

1. 如何分散访问请求到集群的各个结点
2. 如何通过一种session管理策略,确保某一个结点失效后,其session数据能由其他结点获取以便其他结点接替失效结点,实现集群的容错(failover)

对于第一个问题,最简单最直白的想法当然是均匀散列请求到各结点,但是对于应用服务器而言,由于有session的存在,一种更好的处理方式是同一个session的相关请求分发到同一个结点进行处理,这就是所谓的“粘性ssession”(sticky session)方式的负载均衡,而前者就称之为:“非粘性ssession”(non-sticky session)方式的负载均衡.

对于第二个问题,多数的应该服务器(包括Tomcat在内)使用的是session复制(session replication)机制,即结点之间通过组播方式将各自的session发到其他所有结点上,如果其中一个访问出错,则另外结点仍然具有有效的session内容,从而能正常接管其session。由于服务器内置了session复制机制的实现,因而使用这种方案非常简单,只需要做简单的配置即可完成,但是其缺点也是很明显的,由于大量的session信息需要复制,在用户数量和集群数量达到一定规模后,session复制就有可能成为性能瓶颈。于是人们想到了别外一种解决策略:通过第三方缓存来存放sessiono数据,如果某一结点失效,被委任接替失效结点的服务器可以从缓存中恢复session.基于这种思想,在google code上有一款开源产品:memcached-session-manager。

2.memcached-session-manager的工作原理


首先,所有的tomcat节点需要安装memcached-session-manager,每一个tomcat会有自己的本地session,当一个请求执行完毕之后,如果对应的session之前不存在(也就是说这是某个用户的第一次请求),则将该session拷贝一份副本至memcached缓存,当该session的下一个请求到达时,会使用tomcat的本地session,请求处理结束之后,session的变化会同步更新到memcached缓存中对应的session里,从而确保本地session和缓存中的session始终保持一致。如果当前结点失效,下一个请求会被路由给另外一个tomcat处理,这个tomcat发现请求所属的session并不存在,于是它将查询memcached缓存,并将查询到的session恢复到本地,这样就完成了容错处理。(以上是sticky session模式为背景的解释,memcached-session-manager也支持non-sticky session。)

由于以缓存为基础的session管理不需要大量的数据复制,其性能表现更好,具有更好的伸缩性。


最后补充一点:实际上,除去有服务器端管理session,还有另一个种截然不同的管理方式,即将session作为cookie的一部分经过压缩和加密后存放在用户的本地浏览器上!

TongHttpServer会话亲和配置实战:从负载均衡原理到解决Session丢失问题 负载均衡是分布式系统架构中的核心组件,其核心原理是将客户端请求分发到多个后端服务器,以提升系统的处理能力和可用性。在Web应用中,当用户会话(Session)状态存储于服务器内存时,负载均衡器需要一种机制确保同一用户的连续请求能被定向到同一台服务器,这就是会话亲和(Session Affinity),也称为粘性会话。该技术通过基于Cookie插入或源IP绑定等策略,解决了传统集群部署中因请求漂移导致的会话丢失、用户数据错乱等关键问题,对于保障有状态应用的一致性和用户体验至关重要。本文以TongHttpSer 阅读详情

相关推荐

Apache、Nginx与Tomcat核心区别与应用场景全解析

在Web服务器领域,理解不同服务器的核心架构与适用场景是构建稳定高效应用的基础。通用HTTP服务器如Apache采用多进程/多线程模型,以其高度模块化和功能全面性著称,适合传统动态内容处理。而事件驱动架构的Nginx,凭借其异步非阻塞的设计,在高并发处理和静态资源分发方面表现卓越,常作为反向代理与负载均衡器。对于Java Web应用,Servlet容器如Tomcat是专属运行环境,负责管理应用生命周期与请求分发。在实际生产环境中,**高并发**场景常采用Nginx作为前端代理,实现动静分离与负载均衡,将动态

weixin_30861459的博客 301

haproxy负载均衡_Lvs,haproxy,nginx 负载均衡的比较,读完之后,大部分程序员收藏了...

一、lvs的优势:1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置...

weixin_39907591的博客 269

Web身份认证全解析:从Session、JWT到SSO与安全实践

Web身份认证是解决HTTP无状态协议下用户身份识别问题的核心技术。其核心原理是通过凭证(如Session ID或Token)在客户端与服务器之间建立信任关系,使服务器能够识别请求的发起者。这项技术的价值在于保障用户数据安全、实现跨系统状态管理,并作为防御CSRF、XSS等攻击的基础防线。从经典的Session-Cookie机制到现代无状态的JWT(JSON Web Token),再到实现“一次登录,全网通行”的单点登录(SSO),认证方案随着前后端分离、微服务等架构演进不断升级。在实际应用中,开发者常需结

cmff98425的博客 416

分布式session解决方案

sessionId: 一个sessionId可以唯一标识一个用户,这样就可以简单地进行用户识别。sessionId可以保存到客户端,但session只能保存到服务器中。session共享(分布式session)将session存储到redis等分布式缓存数据库中,而不是应用服务器如tomcat内部中。这样就可以保证session的一致性。参考: 1.http://blog.youkuaiyun.com/agf

sinat_34814635的博客 2627

cesium自定义指南针

项目需要一个指南针,用鼠标按住旋转指针,会让3d地图旋转,点击中心点重置方位。当然可以使用插件cesium-navigation-es6,但是样式不好修改,所以我自定义了一个指南针。

weixin_47017648的博客 751

基于phpstudy搭建pikachu靶场

一、phpstudy下载安装配置 phpstudy介绍 简单介绍一下phpstudy,详细请参考百度解读。pikachu是基于PHP环境搭建的,需要数据库支持,所以装pikachu之前需要先安装它需要的环境,就像你养鱼需要给它提供水环境一样。安装phpstudy能满足pikachu的需求,所以先安装phpstudy。 phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是

ptxybird的博客 1万+

分布式Session共享多种方案,SpringSession;tomcat+redis集群

session共享解决方案

qq_44765647的博客 2273

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1270

Tomcat集群session管理解决方案(关于sticky session、session replication与使用memcached缓存session)...

本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7641714 ,转载请注明出处! 提要:本文主要的写作目的是解释集群方案中的一些重要的概念,然后引入另一种session管理机制:基于缓存的session管理。本文并不讲述如何配置apache和tomcat来实现集群和负载均衡,关于这方面内容,可参考我的另一篇文章:Linux下搭建to...

tempsitegoogle 291

petalinux2022.2启动文件编译配置

petalinux2021之前的版本里,导入目录components/yocto/下的“environment-setup-aarch64-xilinx-linux” 和 “layers/core/oe-init-build-env”的环境,能使用Yocto的devtool工具。(加入下面内容,先petalinux-build下载完成后才能有源码)制作 BOOT.BIN 启动文件:petalinux-package --boot --fsbl --fpga --u-boot --force。

wangjie36的博客 1401

DAVIS前言:事件相机资料调研

Event-Camera 资料集锦 1. 官网资料 假设了你买了事件相机,就可以在以下几个链接了解相关的参数和gui界面安装,如果不喜欢gui界面安装,可以第2节,安装相关的源码驱动。 DVS/DAVIS产品说明 等相关产品的软硬件介绍。 iniVation DV教程文档 给出在不同平台下的dvs-gui界面,可按照其说明进行相应的操作。 另外,Neuromorphic vision com...

Ian的博客 4507

分布式Session的四种解决方案

Nginx是一款自由的、开源的、高性能的http服务器和反向代理服务器。

Isonion的博客 714

2026年AI视频生成大模型全景指南:国内外主流工具深度对比与选型建议

AI视频生成技术在2025年至2026年间取得了突破性进展,从"能用"进化到"好用",商业化应用加速落地。中美双轨竞争格局基本成型,国内模型在技术追赶和本土化体验方面展现出强劲竞争力。对于用户而言,选择合适的AI视频生成工具需要综合考虑技术性能、使用门槛、成本预算和具体需求。零基础新手推荐海艺AI、通义万相等低门槛工具;进阶创作者可根据需求选择可灵AI、即梦AI、海艺AI等;专业开发者和企业用户可考虑智谱清影的开源能力或可灵AI的商业化服务。

nmdbbzcl的博客 2851

【Apache Tomcat 系列】Tomcat集群session管理解决方案(关于sticky session、session replication与使用memcached缓存session)

本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7641714 ,转载请注明出处! 提要:本文主要的写作目的是解释集群方案中的一些重要的概念,然后引入另一种session管理机制:基于缓存的session管理。本文并不讲述如何配置apache和tomcat来实现集群和负载均衡,关于这方面内容,可参考我的另一篇文章:Li

Jonathan.Wei的专栏 1810

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

【碳排放数据集】全球近实时网格化二氧化碳排放数据集GRACED

WW、forever的博客 146

执行HDevelop项目

这一节,我们讲述的是如何用HDevEngine加载和执行一个HDevelop项目。代码部分来源于示例程序exec_program(源文件exec_program.cpp),检测塑料零件边界上的毛刺。1.Step 1:初始化首先,我们包含HALCON/C++和HDevEngine头文件以及命名空间。注意到在这个示例程序中,HDevEngine头文件已经包含在my_hdevoperatorimpl中,所

Z's Palace 2998

【转 Tomcat集群session管理解决方案(关于sticky session、session replication与使用memcached缓存sess...

本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7641714 提要:本文主要的写作目的是解释集群方案中的一些重要的概念,然后引入另一种session管理机制:基于缓存的session管理。本文并不讲述如何配置apache和tomcat来实现集群和负载均衡,关于这方面内容,可参考我的另一篇文章:Linux下搭建tomcat集群...

utopialxw的专栏 185

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Tomcat集群session管理解决方案 关于sticky session session replication与使

Tomcat集群session管理解决方案 关于sticky session session replication与使

qq_44919253的博客 342

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Redis企业实战:从基础到高级架构的完整指南(不全)

《Redis企业级实战与高级架构》课程摘要 本课程全面讲解Redis从基础到企业级应用的完整知识体系,分为基础篇、实战篇和高级篇三部分,总时长超过13小时。 基础篇(12章): 系统讲解Redis核心概念、安装部署和5种数据结构 详细演示String/Hash/List/Set/ZSet等命令操作 深入讲解Key层级设计、通用命令和图形化工具 实战篇(30章): 通过黑马点评项目实现短信登录、商户缓存等10大业务场景 解决缓存穿透/击穿/雪崩问题,实现分布式锁方案 使用Lua脚本、Redisson和消息队列

2501_90864902的博客 267

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tomcat Session 管理与分布式方案

本篇文章深入剖析了Tomcat Session 管理与分布式方案Session 生命周期:创建 → 使用 → 过期 → 销毁Manager 实现集群模式:全量复制(DeltaManager) vs 单点备份(BackupManager)源码解析替代方案这样,我们就完整掌握了Tomcat Session 高可用与分布式管理机制。

波波烤鸭的博客 1522

Tomcat(68)如何在Tomcat中配置分布式会话管理?

在Tomcat中配置分布式会话管理是为了实现多个Tomcat实例之间的会话同步,使其在负载均衡环境中共享用户会话。这通常通过Tomcat的组件实现。以下是详细的配置步骤和示例代码。

qq_43012298的博客 523

实现Tomcat Session集群

目标 实现session的高可用 环境 ip 用途 192.168.233.196 调度器(nginx) 192.168.233.17 tomcat1 192.168.233.18 tomcat2 配置说明 1、在nginx里面设置对后端tomcat主机轮询 http { ... upstream tomcat { server 192.168.233.17:8080 weight=1; server 19...

s7827462的博客 271
上一篇: SQL 操作结果集 -并集、差集、交集、结果集排序
下一篇: 用memcached-session-manager实现Tomcat集群
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值