`
xxtianxiaxing
  • 浏览: 707964 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论
阅读更多

Tomcat session共享—MSM

一、原理

       

       MSM(memcached-session-manager) 支持tomcat6 tomcat7 ,利用 ValueTomcat 阀)对Request进行跟踪。Request请求到来时,从memcached加载sessionRequest请求结束时,将tomcat session更新至memcached,以达到session共享之目的, 支持 sticky   non-sticky 模式。

 

       Sticky 模式:tomcat session  session memcached 为备 sessionRequest请求到来时, memcached加载备 session  tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session)Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。

 

       Non-Sticky模式:tomcat session  中转session memcached1 为主 sessionmemcached 2 为备sessionRequest请求到来时,从memcached 2加载备 session  tomcat,(当 容器 中还是没有session 则从memcached1加载主 session  tomcat 这种情况是只有一个memcached节点,或者有memcached1 出错时),Request请求结束时,将tomcat session更新至 memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。

 

 

二、配置

 

1.sticky

 

<Context> 
         <Manager className=" de.javakaffee.web.msm.MemcachedBackupSessionManager"
                  memcachedNodes="n1:localhost:11211 n2:localhost:11212"
                  failoverNodes="n1"
                  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
        /> 
</Context>

 

2.non-sticky

 

<Context> 
         <Manager className=" de.javakaffee.web.msm.MemcachedBackupSessionManager"
                  memcachedNodes="n1:localhost:11211 n2:localhost:11212"
                 sticky="false"
                  lockingMode="uriPattern:/path1|/path2"
                  requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
                  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
         /> 
</Context>

 

 

 

 

3.jvmroute

配置$CATALINA_HOME/conf/server.xml            

         #每台机器jvmRoute不能相同 jvmRoute="tomcat2"

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

配置$CATALINA_HOME/conf/context.xml<Context> 详见下

 

 

 

4.日志

在该日志文件中添加配置。$CATALINA_HOME/conf/logging.properties.

de.javakaffee.web.msm.level=FINE

 

5.jar

 kryo-1.03.jar
 kryo-serializers-0.8.jar
 memcached-2.4.2.jar
 memcached-session-manager-1.5.0.jar
 memcached-session-manager-tc6-1.5.0.jar
 minlog-1.2.jar
 msm-kryo-serializer-1.5.0.jar

 

三、流程图

1.sticky

2.non-sticky

 

 

 

 

 

 

 

分享到:
评论
5 楼 liubey 2014-05-30  
miwucc 写道
博主你好。我刚用msm。sticky的配置下,在one tomcat,的情况下ok。但是我采用nginx+2tomact的时候,当第2个request被路由到了另外一个tomcat的时候报异常,博主是否遇到过呢?求指点:
java.lang.NoSuchMethodError: org.apache.catalina.connector.Request.changeSessionId(Ljava/lang/String;)V


sticky模式得用前台服务器做loadbalance
4 楼 xxtianxiaxing 2013-04-03  
没有特殊的配置,应该从你的代码端排查下,
我曾经遇到过,在sticky=false模式中,jsp页面中如果包含include标签的页面有可能会引起sessionID的变化情况。

我们最终也才是采用sticky=true。
3 楼 unsoundboy 2013-04-01  
这种方式在第一次的时候可行,但是再次请求session就变化了,请问楼主是不是还有什么特殊的配置呢?
2 楼 miwucc 2011-12-27  
我qq260778691,还望可以指点一下
1 楼 miwucc 2011-12-27  
博主你好。我刚用msm。sticky的配置下,在one tomcat,的情况下ok。但是我采用nginx+2tomact的时候,当第2个request被路由到了另外一个tomcat的时候报异常,博主是否遇到过呢?求指点:
java.lang.NoSuchMethodError: org.apache.catalina.connector.Request.changeSessionId(Ljava/lang/String;)V

相关推荐

    tomcat8+memcached session共享

    标题中的“tomcat8+memcached session共享”指的是在Tomcat 8服务器中利用Memcached进行session共享的技术实践。在分布式系统中,session共享是一个重要的问题,因为用户在访问不同的服务器节点时,需要保持登录状态...

    Memcached+tomcat session共享jar 和tomcat xml配置

    在分布式系统中,Session共享是一个常见的挑战,尤其是在多个服务器之间,比如使用Tomcat作为Web容器的环境。Memcached,一个高性能、分布式的内存对象缓存系统,被广泛用于解决这个问题。本篇将深入探讨如何使用...

    tomcat6 memcache session manager session共享 jar包下载

    标题中的“tomcat6 memcache session manager session共享 jar包下载”揭示了这个压缩包与Tomcat6服务器有关,特别地,它涉及到一个基于Memcache的Session管理器,用于实现跨多个应用服务器的Session共享。...

    memcached-session-manager(MSM) Tomcat集群session共享示例

    memcached-session-manager(MSM) Tomcat集群session共享示例

    memcached tomcat session 共享所需jar

    本篇将详细讲解如何利用Memcached来实现Tomcat容器中的session共享,并介绍相关的jar文件及其作用。 标题中的"memcached tomcat session 共享所需jar"是指在Tomcat服务器中集成Memcached作为session存储,以实现在...

    tomcat做session共享需要的全部jar包

    Tomcat,作为广泛使用的开源Java Servlet容器,处理Session共享的需求是必不可少的。本压缩包提供的是一系列用于Tomcat实现Session共享的jar包,主要包括asm、javolution、kryo、memcached-session-manager以及相关...

    memcached-session-manager 实现 tomcat session共享

    标题 "memcached-session-manager 实现 tomcat session共享" 指的是在分布式环境中,通过 memcached-session-manager 这个工具来实现 Tomcat 应用服务器之间的 Session 共享。Session 是 Web 应用中用于存储用户状态...

    tomcat 做session共享所需jar包压

    总结来说,"Tomcat做session共享所需jar包"主要是为了实现跨服务器的Session共享,通过使用像MSM这样的工具,结合Memcached服务,可以有效地处理分布式环境中的Session管理问题,提升系统的扩展性和用户体验。...

    tomcat 做session共享所需jar包压缩包

    标题中的“tomcat 做session共享所需jar包压缩包”指的是在多个Tomcat服务器之间实现Session共享所需的Java归档(JAR)文件集合。Session共享是解决在集群环境中用户会话一致性问题的关键技术,特别是在高可用性和...

    tomcat7集群session共享memcache依赖包1.8.3

    总的来说,"tomcat7集群session共享memcache依赖包1.8.3"提供了一种有效的方法,解决了在Tomcat7集群中Session共享的问题,通过Memcached作为中间件,实现了跨节点的Session一致性,提高了系统的可用性和用户体验。...

    Memcached-Session-Manager多tomcat实现session共享配置

    **Memcached-Session-Manager与Tomcat集群中的Session共享** 在分布式系统中,尤其是在使用了多个Tomcat实例作为Web服务器的集群环境中,确保用户会话(Session)在各个节点之间共享是至关重要的。Memcached-...

    msm集群session共享

    `msm集群session共享`是指在多个Tomcat服务器之间实现用户session数据的共享,以保证用户在集群中的任意一台服务器上都能保持登录状态和其他会话信息的连续性。这种技术常用于提升网站的可用性和负载均衡能力。 `...

    MSM--memcached session manager(memcached+tomcat7共享session所需jar包)

    MSM--memcached session manager是一个高可用的Tomcat session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用memcached存取Session,以实现高可用。对于非黏性Session,...

    Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

    本主题将详细探讨如何在Windows7环境下,利用Nginx作为负载均衡器,Memcached作为session存储,以及Tomcat作为应用服务器,实现session共享。 **1. Nginx介绍与配置** Nginx是一款高性能的HTTP和反向代理服务器,它...

    Nginx+Tomcat+Memcached-Session-Manager集群Session共享

    在本篇文章中,我们将深入探讨如何使用Nginx、Tomcat和Memcached-Session-Manager(MSM)来构建一个集群环境,并实现Session共享。这涉及到集群搭建、分布式应用以及缓存管理等多个方面的IT知识。下面将详细展开这些...

    nginx+tomcat集群+memcached实现session共享(适用tc7、tc8)

    兼容Tomcat7 与tomcat8 +memcached做session共享 , 解决了tomcat7与Tomcat8的 java.lang.NoSuchFieldError: attributes 错误。

    memcached+tomcat7实现session共享的jar包

    memcached+tomcat7 session共享用到的jar包:javolution-5.5.1.jar,kryo-1.03.jar,kryo-serializers-0.10.jar,memcached-2.5.jar,memcached-session-manager-1.5.1.jar,memcached-session-manager-tc7-1.5.1.jar,...

    nginx+tomcat7+session共享 kryo序列化所需要包

    nginx+tomcat7+session共享 kryo序列化所需要包 1.将上面所提到的包全部拷贝到tomcat的lib下(三台tomcat都需要) 2.修改每台tomcat的conf目录下得context.xml文件或者server.xml文件,在其中加入如下任意一段代码...

    Tomcat8-msm.zip

    Memcached Session Manager基于memcache缓存的session共享.即使用cacheDB存取session信息,应用服务器接受新请求将session信息保存在cache DB中,当应用服务器发生故障时,调度器会遍历寻找可用节点,分发请求,当...

    tomcat8+memcached session共享所需的jar包

    tomcat8+memcached session共享所需的jar包, memcached-session-manager memcached-session-manager-tc8 msm-kryo-serializer spymemcached kryo-serializers所有jar包都有

Global site tag (gtag.js) - Google Analytics