`

tomcat集群session共享

阅读更多

tomcat有cluster和loadbalance两种方案.

cluster(http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html)通过组播方式进行session同步实现高可用性,但是一般的交换机都将组播关闭了,如果有这种需求,需要开启交换机此功能。因为组播对交换机资源消耗很大,所以如果cluster中的tomcat服务器很多,会影响session同步效率.

loadbalance实现负载均衡(可以根据不同的sessionID分配到同一个tomcat上)。因为缺省session信息会保存到tomcat自己内存中,无法实现高可用性。如果需要高可用性可以将所有session信息存储到一起,放到cache服务器或者数据库服务器中。 

memcached session manager

我的环境是nginx 负载多台tomcat(2台机器,2个应用,8个tomcat) .  

地址:http://code.google.com/p/memcached-session-manager

安装和使用参见http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration.

下面是我的一点摘抄总结

 

优势

摘自http://blog.csdn.net/small_love/article/details/6662686

  1、支持Tomcat6和Tomcat7

  2、操作粘性或不黏性Session

  3、没有单点故障

  4、Tomcat的故障转移

  5、Memcached的故障转移

  6、可插拔的Session序列化

  7、支持异步保存Session

  8、Sessions发送到Memcached如果他确实修改了

  9、JMX管理和监控

 

使用

1:首先安装 memcached 和nginx 

2:下载下面的jar包放到%TOMCAT_HOMT%\lib下

http://spymemcached.googlecode.com/files/memcached-2.6.jar

memcached-2.6.jar

http://code.google.com/p/memcached-session-manager/downloads/list

javolution-5.4.3.1.jar

memcached-session-manager-1.5.1.jar

memcached-session-manager-tc7-1.5.1.jar(根据你的tomcat版本选择 tc7 是tomcat7)

msm-javolution-serializer-1.5.1.jar

msm-kryo-serializer-1.5.1.jar

msm-xstream-serializer-1.5.1.jar

官方给出多种序列化方案,kryo的效率比较高,详见 http://code.google.com/p/memcached-session-manager/wiki/SerializationStrategies

3:配置tomcat context.xml 或者 server.xml中的context标签

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:ip:11211,n2:ip:11212"

requestUriIgnorePattern=".*/.(png|gif|jpg|css|js|swf)$"

sessionBackupAsync="false"

sessionBackupTimeout="100"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"/>

4.启动tomcat 查看sessionid

JSESSIONID: 6353107A4C57323148D900274400DA61-n1.f230

其实是修改tomcat的session存储机制 n1是memcached的节点名称,f230是jvmRoute

 

分享到:
评论

相关推荐

    【全套】tomcat集群Session共享

    总的来说,“【全套】tomcat集群Session共享”这套资源包含了实现Tomcat集群Session共享所需的全部工具和说明文档,能够帮助开发者有效地解决多实例Tomcat下的Session一致性问题,提升系统的可扩展性和可用性。...

    tomcat集群session共享解决方案

    本篇文章将深入探讨Tomcat集群中session共享的解决方案,以及相关的应用知识。 1. **Session复制**:这是最基础的session共享方法。通过配置Tomcat的`cluster`模块,可以设置session复制策略。每当一个session在...

    Tomcat集群Session共享

    以下是几种常见的Tomcat集群Session共享方案,包括其实现过程、优缺点和可能遇到的问题。 1. **基于Cookie+Redis+Filter解决方案** - 实现过程:用户登录后,将Session ID与用户信息存入Redis,并在客户端设置一个...

    tomcat集群session共享jar tomcat7专用jar

    这就是“Tomcat集群session共享”的核心需求。本篇将详细介绍如何在Tomcat7中实现基于Redis的Session共享,并涉及相关的jar包。 首先,让我们了解为何需要session共享。在单个Tomcat服务器中,Session信息存储在...

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

    总之,Windows + Nginx + Memcached + Tomcat 集群session共享方案是一个高效且可靠的架构,它能提高系统的可用性,保证用户会话的连续性,是大规模Web应用常见的部署模式。然而,实际部署时,还需要考虑安全性、...

    tomcat集群session共享jar(三个)

    这里的“tomcat集群session共享jar(三个)”指的是实现Tomcat集群间session共享所需的一些关键组件或者库。虽然提供的文件名称列表中只有一个`tomcat-redis-session-manager`,但通常实现session共享可能会涉及多个...

    tomcat集群session共享配置

    当使用nginx反向代理时,如果配置的权衡策略是ip_hash,而ip_hash是根据ip来维持session的,这个就是会话保持。 在使用此方案时,会有一个问题,就是在调用有异步回调方法的接口时,发出请求的服务器和接到回调的...

    Tomcat集群Session共享所有文件.zip

    标题中的"Tomcat集群Session共享所有文件.zip"表明这是一个关于如何在三台服务器的Tomcat集群中实现Session共享的教程和代码集合。 Session共享的目的是确保用户在集群中的任何一台服务器上操作时,其状态都能被...

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

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

    tomcat7集群session共享memcache依赖包1.8.3

    "tomcat7集群session共享memcache依赖包1.8.3"这个标题正揭示了这样一个解决方案。 首先,让我们深入了解Tomcat7集群。Tomcat7是Apache Tomcat服务器的一个版本,它支持Servlet 3.0和JSP 2.2规范。通过复制应用和...

    tomcat集群session共享jar包

    commons-pool-1.6.jar,commons-pool2-2.2.jar,jedis-2.2.0.jar,tomcat-redis-session-manager-1.2-tomcat-7.jar tomcat集群,实现session共享

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

    集群session共享原理** 当用户访问应用时,Nginx将请求分发到一个Tomcat实例。该实例将session数据保存在Memcached中,并将session ID返回给用户。之后,无论用户请求哪个Tomcat实例,只要session ID相同,其他实例...

    spring4+redis3+nginx1实现tomcat集群session共享源码

    本文将详细介绍如何使用Spring、Redis和Nginx来实现Tomcat集群中的Session共享,以及提供相关的源码下载。 首先,我们来看Spring框架。Spring是Java开发中最流行的开源框架之一,它提供了丰富的功能和模块,包括...

    tomcat-redis-session-tomcat tomcat集成redis实现tomcat集群session共享jar包

    描述中提到的“tomcat无缝集成redis实现tomcat集群session管理”,进一步强调了该解决方案的简易性和效率。通过将Redis集成到Tomcat中,可以有效地管理session,避免了传统session复制可能导致的问题,如数据不一致...

    tomcat集群使用redis解决session共享问题

    tomcat集群使用redis解决session共享问题,压缩包包含redisclient-win32.x86.2.0客户端、Redis-x64-3.2.100服务、tomcat-redis-session以及部署安装文档

    redis+tomcat集群配置session共享

    本篇文章将详细探讨如何在Redis+Tomcat集群配置中实现Session共享。 首先,我们需要理解什么是Session。Session是Web应用中用于存储用户状态的一种机制,通常用于保存用户的登录信息、购物车等数据。在单台服务器...

    tomcat8.5.29 redisclouder集群 session共享集群相关配置文件

    tomcat8.5.29 redisclouder集群 session共享集群相关配置文件 亲测可用tomcat8.5.29 redisclouder集群 session共享集群相关配置文件 亲测可用 tomcat8.5.29 redisclouder集群 session共享集群相关配置文件 亲测可用 ...

Global site tag (gtag.js) - Google Analytics