基于Memcached的tomcat集群session共享所用的jar
多个tomcat各种序列化策略配置如下:
一、java默认序列化tomcat配置
conf/context.xml添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.100.208:11211 n2:192.168.100.208:11311"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
/>
lib增加jar包:
spymemcached-2.10.3.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.7.0.jar
二、javolution序列化tomcat配置
conf/context.xml添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.100.208:11211 n2:192.168.100.208:11311"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
copyCollectionsForSerialization="true"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>
lib增加jar包
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
spymemcached-2.10.3.jar
javolution-5.4.3.1.jar
msm-javolution-serializer-1.7.0.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.7.0.jar
三、xstream序列化tomcat配置
conf/context.xml添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.100.208:11211 n2:192.168.100.208:11311"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.xstream.XStreamTranscoderFactory"
/>
lib增加jar包
xmlpull-1.1.3.1.jar
xpp3_min-1.1.4c.jar
xstream-1.4.6.jar
msm-xstream-serializer-1.7.0.jar
spymemcached-2.10.3.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.7.0.jar
四、flexjson序列化tomcat配置
conf/context.xml添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.100.208:11211 n2:192.168.100.208:11311"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.json.JSONTranscoderFactory"
/>
lib增加jar包
flexjson-3.1.jar
msm-flexjson-serializer-1.7.0.jar
spymemcached-2.10.3.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.7.0.jar
五、kryo序列化tomcat配置
conf/context.xml添加
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.100.208:11211 n2:192.168.100.208:11311"
lockingMode="auto"
sticky="false"
requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync= "false"
sessionBackupTimeout= "100"
copyCollectionsForSerialization="true"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
lib增加jar包
kryo-1.04.jar
minlog-1.2.jar
asm-3.2.jar
reflectasm-1.01.jar
kryo-serializers-0.11.jar
msm-kryo-serializer-1.7.0.jar
spymemcached-2.10.3.jar
memcached-session-manager-1.7.0.jar
memcached-session-manager-tc7-1.7.0.jar
各种情况配置如上,据说kryo序列化效率比较快,未做测试。
选其一中方式,部署2个tomcat端口分别是8080和8181
启动后,访问刷新SessionID是否一致。
http://127.0.0.1:8080/t.jsp
SessionID:37B7F153AB3567295B2FBF1831475F5F-n1
SessionIP:127.0.0.1
SessionPort:8080
http://127.0.0.1:8181/t.jsp
SessionID:37B7F153AB3567295B2FBF1831475F5F-n1
SessionIP:127.0.0.1
SessionPort:8181
测试结果SessionID一致。
配置实例请参考:http://download.csdn.net/detail/tianwei7518/6832985
session存储到memchached实现方案时。他主要功能是修改tomcat的session存储机制,使之能够把session序列化存放到memcached中。
Manager标签属性说明
1.className 必须
类名:de.javakaffee.web.msm.MemcachedBackupSessionManager
2.memcachedNodes 必须
memcached节点:此属性应该包含所有运行的
memcached节点或者membase
bucket的uri地址,每一个memcached节点的属性定义格式为<id>:<host>:<port>,
多个节点定义直接使用空格或者逗号分隔,形如:memcachedNodes="n1:app01:11211,n2:app02:11211",如果只
有单个的memcached节点,则<id>是可选项,只需配置<host>:<port>即可,形
如:memcachedNodes="localhost:11211"。
如果我们配置的是membase,那么从1.6.0版本开始,我们可以配置指定一个或者多个membase bucket uris,形如:http://host1:8091/pools,http://host2:8091/pools。Bucket 名称和密码通过属性username,password来定义。membase buckets连接需要遵循memcached协议,传输数据通过二进制流方式。
3.failoverNodes 可选项
故障转移节点:可选项,对非黏性session不可用,属性必须包含memcached节点集群的所有ids。节点id之间用空格或者逗号分隔。
4.username 可选项
从1.6.0版开始使用,并且是可选的。用来进行membase bucket或者SASL验证,密码可以为空。
5.password 可选项
从1.6.0版开始使用,并且是可选的。用来进行membase bucket或者SASL验证,密码可以为空。
6.memcachedProtocol 可选项
定义memcached协议,默认使用text文本,出属性指明memcached使用的存储协议。只支持text或者binary。
7.sticky 可选项
定义session方式为黏性或非黏性,默认为true,多个tomcat时需使用非黏性
8.lockingMode 可选项
只有非黏性session才使用,默认值为none
none: 从不对session进行锁定
all: session将一直被锁定,知道请求结束
auto: 对于只读请求,session将不会被锁定,如果是非只读请求,则session会被锁定
uriPattern:<regexp>: 通过正则表达式的方式来对请求uri以及查询字符串进行匹配,只有匹配上的才会被锁定。
9.requestUriIgnorePattern 可选项
此属性是那些不能改备份Session的请求的正则表达式。如果像css,javascript,图片等静态文件被同一个Tomcat和同一个应用
上下文来提供,这些请求也会通过memcached-session-manager。但是这些请求在一个http会话中几乎没什么改变,所以他们没必要
触发Session备份。所以那些静态文件没必要触发Session备份,你就可以使用此属性定义。此属性必须符合java regex正则规范。
如:".*\.(png|gif|jpg|css|js)$"
10.sessionBackupAsync 可选项
指定Session是否应该被异步保存到Memcached中。 如果被设置为true,backupThreadCount设置起作用,如果设置false,通过sessionBackupTimeout设置的过期时间起作用。
11.backupThreadCount 可选项
用来异步保存Session的线程数,(如果sessionBackupAsync="true")。默认值为cup的内核数。
12.sessionBackupTimeout 可选项
设置备份一个Session所用的时间,如果操作超过时间那么保存失败。此属性只在sessionBackupAsync="false"是起作用。默认100毫秒
13.operationTimeout 可选项
从1.6.0版开始使用, 默认值为1000
14.sessionAttributeFilter 可选项
此属性是用来控制Session
中的那个属性值保存到Memcached中的正则表达式。郑则表达式被用来匹配Session中属性名称。如
sessionAttributeFilter="^(userName|sessionHistory)$"
指定了只有"userName"和"sessionHistory"属性保存到Memcached中。依赖于选择的序列化策略。
15.transcoderFactoryClass 可选项
此属性值是创建序列化和反序列化
保存到Memcached中的Session的编码转换器的工厂类名。这个指定的类必须实现了
de.javakaffee.web.msm.TranscoderFactory和提供一个无参的构造方法。例如其他的有效的实现在其他
packages/jars中提供如:msm-kryo-serializer,msm-xstrea-serializer和msm-
javolution-serializer.
默认为 de.javakaffee.web.msm.JavaSerializationTranscoderFactory
16.copyCollectionsForSerialization 可选项
默认值为false。
17.customConverter 可选项
自己定义特殊的类注册到kryo自定义转换器中,实现序列化
18.enableStatistics 可选项
用来指定是否进行统计。 默认值为true。
19.enabled 可选项
指定Session保存到Memcached中是否可用和是否可以通过JMX进行改变。只用于粘性Session。 默认值为true。
基于Memcached的tomcat集群session共享所用的jar的更多相关文章
- 基于Memcached的tomcat集群session共享所用的jar及多个tomcat各种序列化策略配置
原文:http://www.cnblogs.com/interdrp/p/4096466.html 多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/contex ...
- 使用memcached实现tomcat集群session共享
环境centos6.7,下载安装必要的软件:yum -y install epel-release(tomcat7在此源上,tomcat7是现在主流版本) yum -y install tomcat ...
- Nginx+Tomcat集群+session共享
Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...
- Shiro+Redis实现tomcat集群session共享
一.背景 当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧 ...
- JEECG & JEESite Tomcat集群 Session共享
多台tomcat服务的session共享 memcached与redis - JEECG开源社区 - CSDN博客https://blog.csdn.net/zhangdaiscott/article ...
- tomcat集群session共享
Tomcat集群配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,对我这样的人来说很难懂 . 下面根据说下怎么配置 ...
- 160513、nginx+tomcat集群+session共享(linux)
第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...
- redis实现tomcat集群session共享
1.部署两个tomcat节点,使用nginx实现集群(见http://www.cnblogs.com/zhangzhi0556/articles/nginx.html): 2.redis安装(见h ...
- 160512、nginx+多个tomcat集群+session共享(windows版)
第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start ng ...
随机推荐
- 4.类型设计规范《.NET设计规范》
类是引用类型的一般情况,占了框架中的大多情况,类的流行归于它支持面向对象的特征,以及它的普遍的适用性,基类和抽象类是两个特殊的逻辑分组,它们与扩张性有关. 由于CLR不支持多继承,接口类型可以用来模拟 ...
- js如何判断访问来源是来自搜索引擎(蜘蛛人)还是直接访问
以下javascript脚本代码可以实现判断访问是否来自搜索引擎.代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <scri ...
- CF 554A 字符串水题
给出一个字符串,问再加入一个字母,最多能形成多少种字符串 inputaoutput51inputhioutput76 # include <iostream> # include < ...
- weex官方demo weex-hackernews代码解读(上)
一.介绍 weex 是阿里出品的一个类似RN的框架,可以使用前端技术来开发移动应用,实现一份代码支持H5,IOS和Android.最新版本的weex已默认将vue.js作为前端框架,而weex-hac ...
- Laravel 去掉访问后面的 “public”
将laravel/server.PHP 改名为index.php,再将public目录下的.htaccess拷贝到Larvael根目录下,再访问Larvael就会发现不需要加上public,由于访问入 ...
- HTML中元素的定位方式
初中物理就学过,位置是相对的,要有参照物,因此,所有定位都是相对参照物的定位. position 属性: 规定元素的定位类型,该属性的可选值有static.relative.absolute.fixe ...
- CF 494 F. Abbreviation(动态规划)
题目链接:[http://codeforces.com/contest/1003/problem/F] 题意:给出一个n字符串,这些字符串按顺序组成一个文本,字符串之间用空格隔开,文本的大小是字母+空 ...
- 【BZOJ 4816】 4816: [Sdoi2017]数字表格 (莫比乌斯)
4816: [Sdoi2017]数字表格 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 666 Solved: 312 Description Do ...
- 笔记本光驱位置装SSD固态硬盘(亲自试验)
我的笔记本买的早了,2010年的联想Z460,速度有点慢,本来想换台电脑,想想还是算了,没有太大必要.固态硬盘便宜了,于是在原来的光驱位置装了一个256G的SSD固态硬盘,现在的性能能达到刚买来时的1 ...
- Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) A. Neverending competitions 水题
A. Neverending competitions 题目连接: http://codeforces.com/contest/765/problem/A Description There are ...