事件缘由:一个主项目“图说美物”,另外一个子功能是品牌商的入驻功能,是跟主项目分开的项目,为了共享登录的用户信息,而实现session共享,俩个tomcat,一个tomcat6,一个tomcat7
web项目windows系统下实现session的共享
第一个步:
在俩个tomcat的context.xml这个文件中配置如下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" lockingMode="auto" sticky="true" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" copyCollectionsForSerialization="true" />
第二步:
Tomcat6下添加的jar包:
tomcat7下添加的jar包:
PS:利用memcache来保存tomcat的session会话
写此文的主要目的是修正一下,部分网上有误的地方。
前提条件:
1、memcached正常工作了
2、tomcat 正常工作了。
1、安装方法及安装包
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
安装方法: 将这几个包放到/usr/local/tomcat6.0/lib里。
2、编辑tomcat的配置文件。
<这一点很重要,因为网上大多数文章都是说修改server.xml里配置;我试过但最终发现session的信息没有存入到memcache中,我意识到这可能是配置有问题。目前发现编辑context.xml这个文件,是可以立即将session丢入到memcache中的。>
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- 在这个字段下添加以下内容,在节点入请填入你的memcached服务器ip及端口号--> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context>
3、如何测试?
我目前的测试方法是,通过apache的mod_jk来实现负载均衡(之前的文章里有写),并且启用tomcat之间的会话复制。
这样的结果就是,seesion ID会随着每次用户的提交而变换节点,但ID不变。
例如:
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
下次提交就会变成: <节点切换了,但是ID不变>
ID CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
结合memcache的状态: <我之前在会话没有成功的丢到memcached这里时,cmd_set 为0 >
# perl memcached-tool.pl 10.254.41.197:11211 stats
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 stats
cmd_get 31
cmd_set 17
get_hits 14
我想通过以上的判断,配置 是成功的!
本文向大家介绍java中FileOutputStream中文乱码问题解决办法,包括了java中FileOutputStream中文乱码问题解决办法的使用技巧和注意事项,需要的朋友参考一下 java中FileOutputStream中文乱码问题解决办法 使用FileOutputStream序列化可以直接向文件写入文本内容,代码如下: 但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutp
本文向大家介绍Spring注解和同步锁不能同步问题解决,包括了Spring注解和同步锁不能同步问题解决的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring注解和同步锁不能同步问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 结论:如果在service层的方法上同时使用事务和同步锁无法保证数据同步。 上面这个例子无法保证数
本文向大家介绍python线程中的同步问题及解决方法,包括了python线程中的同步问题及解决方法的使用技巧和注意事项,需要的朋友参考一下 多线程开发可能遇到的问题 假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000。但是由于是多线程访问,有可能出现下面情况: 运行结果可能不一样,但是结果往往不是2000000。问
我正在使用第三方API,从中我得到以下错误: CORS 策略已阻止从源“https://mydomain.xyz”访问位于“https://myapi/..”的 XMLHttpRequest:对预检请求的响应未通过访问控制检查:请求的资源上不存在“访问控制-允许源”标头。 我想知道如何在我的应用程序中启用CORS策略。我的. htAccess文件是: 我正在使用Laravel应用程序。提前感谢。
本文向大家介绍java 中 poi解析Excel文件版本问题解决办法,包括了java 中 poi解析Excel文件版本问题解决办法的使用技巧和注意事项,需要的朋友参考一下 poi解析Excel文件版本问题解决办法 poi解析Excel文件时有两种格式: HSSFWorkbook格式用来解析Excel2003(xls)的文件 XSSFWorkbook格式用来解析Excel2007(xlsx)的文件
本文向大家介绍Ajax同步和异步问题浅析及解决方法,包括了Ajax同步和异步问题浅析及解决方法的使用技巧和注意事项,需要的朋友参考一下 通过ajax向后台发送和接收数据时,常常会出现同步异步问题。由于ajax是默认异步加载的,但有时候需要同步或者同步的效果,有以下两种解决方案。 方案一:将某些方法放在回调函数中执行,即,等到从后台返回成功后再执行。 例: 红色的部分必须在数据返回成功后执行,如果放