论坛首页 Java企业应用论坛

nginx+两个tomcat集群,tomcat实现分布式session时出现的问题

浏览 7027 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-07-15  

nginx已经配置成功,现在两个tomcat要实现分布式session,tomcat /conf/context.xml 加入如下配置:

 

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"   
		memcachedNodes="n1:90.0.12.101:11211"   
		requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"   
		sessionBackupAsync="false"   
		sessionBackupTimeout="100"   
		transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"   
		copyCollectionsForSerialization="false" />

 

 

tomcat lib目录加入的jar包如附件所示。

tomcat7、8都试过了,报错信息一样。 我想问是哪个jar包出现了问题?  已经折腾了一天了~

 

报错信息:

org.apache.catalina.LifecycleException: Failed to start component [de.javakaffee.web.msm.MemcachedBackupSessionManager[/host-manager]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5540) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1948) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodError: de.javakaffee.web.msm.MemcachedSessionService.startInternal()V at de.javakaffee.web.msm.MemcachedBackupSessionManager.startInternal(MemcachedBackupSessionManager.java:509) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 12 more

 

  • 大小: 8.1 KB
   发表时间:2015-07-15  
图片不方便查看,我引入的jar包:
spymemcached-2.8.4.jar
msm-kryo-serializer-1.5.1.jar
msm-javolution-serializer-1.5.1.jar
minlog-1.2.jar
memcached-session-manager-1.5.1.jar
kryo-serializers-0.10.jar
kryo-2.20-all.jar
javolution-5.4.3.1.jar
msm-xstream-serializer-1.5.1.jar
couchbase-client-1.2.2.jar
memcached-session-manager-tc7-1.6.5.jar
0 请登录后投票
   发表时间:2015-07-17  
可能是jar版本不匹配,tomcat7需要对应如下的jar
memcached-session-manager-1.5.0.jar 
memcached-session-manager-tc7-1.5.0.jar 
这两个后面的版本号需要对应。
不过你的版本也太旧了点,去maven上面下载一下对应新版的吧
http://repo1.maven.org/maven2/de/javakaffee/msm/
0 请登录后投票
   发表时间:2015-07-20  

我放的是这几个
  • 大小: 7.5 KB
0 请登录后投票
   发表时间:2015-07-20   最后修改:2015-07-22

感兴趣可以了解一下bboss会话共享框架,快速实现集群节点间会话共享和跨域跨应用会话共享,实现与具体容器无关(tomcat,weblogic,websphere,jetty等),支持tomcat之类容器的各种版本,兼容servlet规范(无需调整程序即可快速集成遗留系统中),无需考虑会话数据序列化问题;能够统计在线会话数,在统一监控中心管理应用会话(删除会话,查询会话数据等),无需使用session_sticky,支持ip层(4层)和http应用层(7层)负载会话共享,参考资料:

bboss会话共享培训文档

bboss session共享架构及特点 

bboss会话共享demo使用指南 
bboss session共享使用方法介绍

 

0 请登录后投票
   发表时间:2015-07-21  
按官方文档配置一直很顺利啊
0 请登录后投票
   发表时间:2015-07-21  
不过我们配置的地方不一样,我是配置在应用的context里(conf/Catalina/localhost)
  <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:xxxx:11211,n2:xxxx:11211"
    sticky="false"
    sessionBackupAsync="false"
    lockingMode="none"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
     />
0 请登录后投票
   发表时间:2015-10-29  
直接把session放入redis,随便多少个tomcat就都一样了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics