首页 > 代码库 > tomcat+session

tomcat+session

1、

复制以下jar包到两个tomcat的安装目录lib中:
memcached-2.6.jar
javolution-5.5.1.jar
memcached-session-manager-1.8.2.jar
memcached-session-manager-tc7-1.8.2.jar
msm-javolution-serializer-1.8.2.jar
kryo-1.04.jar
msm-kryo-serializer-1.8.2.jar
msm-xstream-serializer-1.8.2.jar
spymemcached-2.11.4

2、

配置两个tomcat,在conf/context.xml中加入下面内容:
<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:localhost:11211 n2:localhost:11212"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)"
sessionBackupAsync="false" sessionBackupTimeout="1800000"
copyCollectionsForSerialization="false"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" >

ps:

manager标签属性说明:
1、 session存储到memchached实现方案时,他主要功能是修改tomcat的session
存储机制,使之能够把session序列化存放到memcached中。
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备份,你就可以使用此属性定义。此属性必须符
合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,msmxstrea-
serializer和msm-javolution-serializer.
copyCollectionsForSerialization 可选项,默认false。
customConverter 可选项
enableStatistics 可选项,默认true
用来指定是否进行统计。
enabled 可选项,默认true
指定Session保存到Memcached中是否可用和是否可以通过JMX进行改变。只用
于粘性Session。

【此后安装memcache,可以相结合】

本文出自 “12178027” 博客,谢绝转载!

tomcat+session