MSM搭建(Memcached_Session_Manager)--解决集群session共享
来源:互联网 发布:探险家时光相册软件 编辑:程序博客网 时间:2024/06/05 15:43
一、环境
二、memcached搭建
三、tomcat配置
四、nginx配置
五、说明
MSM(memcached-session-manager) 支持tomcat6 和tomcat7 ,利用 Value(Tomcat 阀)对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的, 支持 sticky 和 non-sticky 模式。
黏性(sticky)session:
非黏性( non-sticky)session:
Sticky 模式: tomcat session 为 主session, memcached 为备 session。Request请求到来时, 从memcached加载备 session到 tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。
Non-Sticky模式:tomcat session 为 中转session, memcached1 为主 sessionmemcached 2 为备session。Request请求到来时,从memcached 2加载备 session 到 tomcat,(当 容器 中还是没有session 则从memcached1加载主 session 到 tomcat, 这种情况是只有一个memcached节点,或者有memcached1 出错时),Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。
Manager标签属性说明:
className:此属性是必须的。
memcachedNodes:此属性是必须的。这个属性必须包含你所有运行的memcached节点。每个节 点的定义格式为<id>:<host>:<port>。 多个之间用空格或半角逗号隔开(如:memcachedNodes="n1:localhost:11211,n2:localhost:11212")。如果你设置单个memcache节点<id>是可选的,所以它允许设置为<host>:<port>(memcachedNodes="localhost:11211")。
failoverNodes:可选项,属性只能用在非粘连Session机制中。
此属性必须包含memcached节点的Id,此节点是Tomcat作为备份使用。多个之间用空格或逗号隔开
memcachedProtocol:可选项,默认为text。出属性指明memcached使用的存储协议。只支持text或者binary。
sticky: 可选项,默认为true。指定使用粘性的还是非粘性的Session机制。
lockingMode: 可选项, 此属性只对非粘性Session有用,默认为none。
指定非粘性Session的锁定策略。他的只有
(1)、none:从来不加锁
(2)、all: 当请求时对Session锁定,直到请求结束
(3)、auto:对只读的request不加锁,对非只读的request加锁
(4)、uriPattern:<regexp>: 使用正则表达式来比较requestRUI + "?" + queryString来决定是否加锁,
requestUriIgnorePattern: 可选项
此属性是那些不能改备份Session的请求的正则表达式。如果像css,javascript,图片等静态文件被同一个Tomcat和同一个应用上下文来提供,这些
请求也会通过memcached-session-manager。但是这些请求在一个http会话中几乎没什么改变,所以他们没必要触发Session备份。所以那些静态文件
没必要触发Session备份,你就可以使用此属性定义。此属性必须符合java regex正则规范。
sessionBackupAsync 可选项,默认true
指定Session是否应该被异步保存到Memcached中。 如果被设置为true,backupThreadCount设置起作用,如果设置false,通过sessionBackupTimeout
设置的过期时间起作用。
backupThreadCount 可选项,默认为CPU内核数。
用来异步保存Session的线程数(如果sessionBackupAsync="true")。
sessionBackupTimeout 可选项,默认100,单位毫秒
设置备份一个Session所用的时间,如果操作超过时间那么保存失败。此属性只在sessionBackupAsync="false"是起作用。默认100毫秒
sessionAttributeFilter 可选项 从1.5.0版本有
此属性是用来控制Session中的那个属性值保存到Memcached中的正则表达式。郑则表达式被用来匹配Session中属性名称。如sessionAttributeFilter="^(userName|sessionHistory)$" 指定了只有"userName"和"sessionHistory"属性保存到Memcached中。
依赖于选择的序列化策略。
transcoderFactoryClass 可选,默认为 de.javakaffee.web.msm.JavaSerializationTranscoderFactory此属性值是创建序列化和反序列化保存到Memcached中的Session的编码转换器的工厂类名。这个指定的类必须实现了de.javakaffee.web.msm.TranscoderFactory
和提供一个无参的构造方法。例如其他的有效的实现在其他packages/jars中提供如:msm-kryo-serializer,msm- xstrea-serializer和msm-javolution-serializer.
copyCollectionsForSerialization 可选项,默认false。
customConverter 可选项
enableStatistics: 可选项,默认true,用来指定是否进行统计。
enabled 可选项,默认true
指定Session保存到Memcached中是否可用和是否可以通过JMX进行改变。只用于粘性Session。
配置$CATALINA_HOME/conf/server.xml
- <Engine name="Catalina"defaultHost="localhost"jvmRoute="tomcat2">
注意每台tomcat的jvmroute参数都不能一样
返回sessionid :011F1CAEAF5AE925F4124D94785AFE41-n1 .tomcat2
n1 表示memcached ; .tomcat2表示配置jvmRoute。
- MSM搭建(Memcached_Session_Manager)--解决集群session共享
- Memcached_Session_Manager(msm)实现tomcat集群session共享
- MSM--Memcached_Session_Manager实现session共享
- tomcat集群添加msm实现session共享
- memcached-session-manager(MSM) + Tomcat集群session共享
- Nginx+Tomcat+memcached-session-manager(MSM)集群session共享
- MSM实现tomcat集群中session共享的高可用
- linux+nginx+tomcat(msm共享session方式)集群部署手把手
- 搭建jboss集群共享session
- Tomcat session共享—MSM
- Tomcat session共享 —MSM
- Tomcat(四):MSM实现Tomcat的session集群
- 基于MSM实现nginx负载均衡+tomcat集群+memcached(session共享)
- MSM--Memcached_Session_Manager介绍及使用
- MSM--Memcached_Session_Manager介绍及使用
- MSM--Memcached_Session_Manager介绍及使用
- MSM--Memcached_Session_Manager介绍及使用
- MSM--Memcached_Session_Manager介绍及使用
- intent 的URI功能示例总汇
- hdoj ztr loves substring 5677 (多重背包+母函数)好题
- 单击图片刷新验证码
- 中文搜索引擎技术揭密:网络蜘蛛
- Android开发笔记之简易画画板的制作
- MSM搭建(Memcached_Session_Manager)--解决集群session共享
- 数据储存(二)及共享
- 有A,B,C三个学生,一个出生在北京,一个出生在上海,一个出生在广州。他们中一个学物理专业,一个学数学专业,一个学计算机。其中(1)A不是学物理的,B不是学计算机的;(2)学物理的不出生在上海;(3)
- $.ajax({})方法success,error,complete,beforeSend使用例子及解释
- register 类型修饰符
- 心情很乱
- Exercise(18):排列(有限制条件)
- 安卓 蓝牙BLE开发(持续更新)
- 怎样制作论坛?