Tomcat集群session如何共享详解

3 篇文章 0 订阅
3 篇文章 0 订阅

 

首先我们需要知道什么是session共享,共享session的目的是什么。

我们知道,session是一次浏览器和服务器的交互的会话,当一个浏览器和服务器连接之后就会产生一个会话。

当我们进行tomcat集群的时候,会遇到这样的问题,我们第一次请求分发到第一台服务器下的服务,第二次请求可能会被分发到另一台服务器下的服务。

这样就会产生两个会话,我们获取到的sessionid值是不一样的,此时我们两台服务器通过session获取到的一些值也不一样,这样就无法满足我们的业务需求。

那有什么办法解决呢?下边就讲下通过tomcat的sessionmanager配合redis的方法存储session,达到多个tomcat的session共享。

1、首先安装好redis环境

可参考之前我写的两篇文章:

http://blog.csdn.net/tjcyjd/article/details/40738163

http://blog.csdn.net/tjcyjd/article/details/51488054

 

2、配置好jdk环境和安装tomcat环境。

 

3、配置session共享。

redis实现方法:

打开tomcat目录conf下的context.xml配置文件

 

	<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

	<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

        host="localhost"

        port="6379"

        database="0"

        maxInactiveInterval="60"/>


memcached实现方法:

 

参考网址:http://code.google.com/p/memcached-session-manager/
修改 tomcat 的 conf 目录下的context.xml 文件:

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


以上版本为 1.3 ,需要以下jar 包:
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-1.3.0.jar
javolution-5.4.3.1.jar
memcached-2.4.2.jar

The end!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java高知社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值