分布式下session 的管理

MSM--memcached session manager是一个高可用的Tomcat session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用memcached存取Session,以实现高可用。

对于非黏性Session,memcached直接存储session。

除memcached外,还可以其他缓存组件如memcachedbmembase等。

特性

支持Tomcat6、Tomcat7

支持黏性、非黏性Session

无单一故障点

可处理tomcat故障转移

可处理memcached故障转移

插件式session序列化

允许异步保存session,以提升响应速度

只有当session有修改时,才会将session写回memcached

JMX管理&监控

MSM解决的问题

假设你有一个Tomcat集群,使用黏性session,如何应对单点故障问题?为了应对更多的并发量和可用性,你可以不断的增加Tomcat节点,但是单点故障仍旧会是个问题:如果使用黏性Session,一个Tomcat故障时,其他Tomcat并不能接管故障Tomcat节点的Session。

解决此问题的思路就是将黏性Session同时保存在Memcached中,如果单个Tomcat发生故障,集群中的其他Tomcat可以从Memcached中得到Session信息。

【注】对于非黏性Session,MSM  V1.4.0及以后版本已经支持。

MSM如何工作

【注】以下论述仅针对黏性Session

安装在Tomcat上的MSM使用本机内存保存session,和StandardManager一样。另外,当一个请求结束时,session会被送回Memcached进行备份。当下一次请求开始时,本地Session可用,直接服务,请求结束后,session又被送回Memcached备份。

当集群中的一个Tomcat挂掉,下一次请求会被路由到其他Tomcat上。负责处理此此请求的Tomcat并不清楚Session的信息。此时它会从Memcached查找该Session,更新该Session并将其保存在本机内容。此次请求结束,session被修改,送回Memcached备份。

java企业级通用权限安全框架源码 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

【java框架源码下载】

时间: 2024-08-07 16:46:53

分布式下session 的管理的相关文章

分布式下Session一致性架构举例

一.问题及方案 见这篇文章:分布式下Session一致性问题 二.分布式环境搭建: 系统环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [[email protected] ~]# 2.1 安装jdk # 下载jdk-8u141-linux-x64.tar.gz # 创建目录 mkdir -p /opt/java # 解压 tar -xzvf jdk-8u141-linu

分布式下Session一致性问题

一.Session一致性问题 1.1 什么是Session 用户使用网站的服务,基本上需要浏览器和web服务器进行多次交互,web服务器如何知道哪些请求是来自哪个会话的? 具体方式为:在会话开始时,分配一个唯一的会话标识(sessionId),通过cookie把这个标识告诉浏览器,以后每次请求的时候,浏览器都会带上这个会话标识来告诉web服务器请求是属于哪个会话的.如果遇到禁用cookie的情况,一般的做法就是把这个会话标识放到url的参数中. 1.2 什么是Session一致性问题 因为会话信

nodejs express下使用redis管理session

Session实现原理 实现请求身份验证的方式很多,其中一种广泛接受的方式是使用服务器端产生的Session ID结合浏览器的Cookie实现对Session的管理,一般来说包括以下4个步骤: 服务器端的产生Session ID 服务器端和客户端存储Session ID 从HTTP Header中提取Session ID 根据Session ID从服务器端的Hash中获取请求者身份信息 使用Express和Redis对Session管理的实现 var session = require('exp

Redis简单案例(四) Session的管理

负载均衡,这应该是一个永恒的话题,也是一个十分重要的话题.毕竟当网站成长到一定程度,访问量自然也是会跟着增长,这个时候, 一般都会对其进行负载均衡等相应的调整.现如今最常见的应该就是使用Nginx来进行处理了吧.当然Jexus也可以达到一样的效果.既然是 负载均衡,那就势必有多台服务器,如果不对session进行处理,那么就会造成Session丢失的情况.有个高大上的名字叫做分布式Session. 举个通俗易懂的例子,假设现在有3台服务器做了负载,用户在登陆的时候是在a服务器上进行的,此时的se

Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load Balancing.Connect Time Connection Failover 和 Runtime Connection Failover,以及里面所涉及到的 TAF.ONS.FCF.FAN.LBA 等诸多知识点.本文主要是针对 Oracle RAC 11gR2 环境下的连接管理,但同时也会对

Windows下的磁盘管理(二)

续Windows下的磁盘管理(一) 六.跨区卷 跨区卷是由几个位于不同磁盘的未分配空间所组成的一个逻辑卷.即用户可以将几个磁盘内的未分配空间,合并成一个跨区卷,分配一个共同的驱动器,这样可能更有效地利用空间.     用户可以选择2-32个磁盘:     每个磁盘的容量可以不相同:     不可以包括系统卷与活动卷:     系统存储数据时,是先将数据存储在其成员中的第一个磁盘内,待其空间用完后,才会用到第二个磁盘,依次类推:     跨区卷不能提高磁盘的访问效率:     跨区卷不具有容错功能

Windows下打印服务器的管理(二)

续Windows下打印服务器的管理(一) 7.表单 可以新建表单(纸张大小,一些不常用."不正规"的纸质大小) 四.将共享打印机发布到活动目录 1.发布打印机 右击打印机,选择"列入目录",这样打印机就被发布到活动目录中,但并不是直接供网络中的其他计算机使用,只是用户就可以通过活动目录查找到此台打印机. 打开活动目录用户和计算机,在"查看" 菜单中勾选"用户.联系人.组和计算机组为容器". 浏览到服务器DCSrv01,可以看到

Windows下的磁盘管理(三)

续Windows下的磁盘管理(一).Windows下的磁盘管理(二). 八.镜像卷 用户可以将一个动态磁盘内的简单卷与另一个动态磁盘内的未分配空间组成一个镜像卷,也可将两个未分配的可能空间组成一个镜像卷.系统会给予一个逻辑驱动器号,这两个区域内存储完全相同的数据. 1.由2块磁盘组成,必须位于动态磁盘内: 2.使用RAID-1的技术: 3.组成卷的两个卷的容量必须相同: 4.可以包含系统卷与活动卷: 5.成员不能包括GPT磁盘的EFI系统分区: 6.系统会将数据同时存储到两块磁盘内.因此当一块磁

Windows下的磁盘管理(四)

续Windows下的磁盘管理(一).Windows下的磁盘管理(二).Windows下的磁盘管理(三). 九.RAID-5卷 和带区卷有一些类似,也是将几个分别位于不同磁盘的未分配空间组成一个逻辑卷. 不同的是,RAID5卷在存储数据时,会另外根据数据内容计算出其奇偶校验,并将奇偶校验一并写入到RAID5卷.当某块磁盘出现故障时,系统可以根据奇偶校验,推算生成出现故障的数据.因此RAID5卷具有容错功能. 1.由3-32块磁盘内分别选择未分配空间来组成RAID卷: 2.每个成员的容量大小相同: