tomcat下redis实现session共享

1.分布式部署的情况下实现session共享。下面是我测试环境及配置。

2.Redis 版本 3.0.6         tomcat版本为:7.0     jdk版本:1.7

3.所需要的jar包及版本

  commons-pool-1.3.jar

  jedis-2.0.0.jar

  tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar

4.Reids安装配置

  Redis使用主备配置(在一台机器上安装,因此需要配置不同的端口号)。安装目录如下:

redis-3.0.6-master  redis-3.0.6-slave

其中master默认配置。端口好为默认的6379,Slave需要做相应的修改。

Slave修配置文件redis.conf的port及slavof

其中port修改为6380

修改salveof为对应master的ip及port。

slaveof 192.168.2.64 6379

5.测试程序

测试项目为myweb,登录页面仅仅显示sessionId,页面主要代码如下:

<body>
<%
HttpSession s = request.getSession();
s.setAttribute("sessionId",s.getId());
%>
得到Session的值是 <%=s.getAttribute("sessionId") %>
</body>

分别在tomcat1和tomcat2上部署myweb。其中tomcat1的端口号为8080,tomcat2的端口号为8081

6.Tomcat的配置

A.修改tomcat1和tomcat2的端口号,分别为8080,8081,以便测试。

B.同时需要把所需要的jar包copy到tomcat下的lib下。commons-pool-1.3.jar、jedis-2.0.0.jar、tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar

C.修改tomcat1和tomcat2的context.xml文件。添加对redis的支持。在Context中添加配置如下:

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="192.168.2.64"
port="6379"
database="0"
maxInactiveInterval="60"/>

7.分别启动redis的master和slave,以及tomcat的tomcat1和tomcat2。访问tomcat1显示的sessionId为:

得到Session的值是 CCA7E2B7A254323F63658828F9DE2B10

访问tomcat2显示的sessionId为:

得到Session的值是 CCA7E2B7A254323F63658828F9DE2B10

同时查看redis中的sessionId为:

127.0.0.1:6379> get CCA7E2B7A254323F63658828F9DE2B10
"\xac\xed\x00\x05w\b\x00\x00\x01T{\xaa\x7fnsr\x00\x0

8.通过上面的配置,实现了不同tomcat下session的共享。前台可以通过nginx做代理,实现不同tomcat下的切换。

时间: 2024-12-22 12:21:59

tomcat下redis实现session共享的相关文章

tomcat利用redis实现session共享

1.下载最新的Jedis(一个Redis 的Java客户端),Tomcat Redis Session Manager 和 Apache Commons Pool,放在tomcat/lib目录 下载地址 Redis:http://redis.io/ JRedis: https://github.com/xetorthio/jedis Tomcat Redis Session Manager :https://github.com/jcoleman/tomcat-redis-session-man

tomcat+nginx+redis实现session共享

1. 所需要的包,放入到tomcat目录的lib目录下(附件内) 2. 配置tomcat目录下的conf/context.xml,加入以下内容: <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /> <Manager className="com.radiadesign.catalina.session.RedisSessionManager"

spring boot + redis 实现session共享

这次带来的是spring boot + redis 实现session共享的教程. 在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下: @Configuration @EnableRedisHttpSession public class RedisSessionConfig { } 而@EnableRedisHttpSession这个注解是由spring-session-data-redis提供的,所以

使用 Redis 实现 Session 共享

1    第4-3课:使用 Redis 实现 Session 共享 在微服务架构中,往往由多个微服务共同支撑前端请求,如果涉及到用户状态就需要考虑分布式 Session 管理问题,比如用户登录请求分发在服务器 A,用户购买请求分发到了服务器 B, 那么服务器就必须可以获取到用户的登录信息,否则就会影响正常交易.因此,在分布式架构或微服务架构下,必须保证一个应用服务器上保存 Session 后,其他应用服务器可以同步或共享这个 Session. 目前主流的分布式 Session 管理有两种方案.

细说tomcat之集群session共享方案

1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <Manager className="org.apache.catali

Nginx+Tomcat+Memcached集群Session共享

提供给大家整合实例: http://download.csdn.net/detail/zld1987/9577962 cookie是怎样工作的? 例如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是"Michael Jordan",同时还对所创建的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path

基于tomcat集群做session共享

前端代理服务器nginx:192.168.223.136 tomcat服务器:采用的一台多实例192.168.223.146:8081,192.168.223.146:8082(如何构建多实例tomcat,请参考前面的文章) 首先查看下tomcat的webapps目录架构: [[email protected] tomcat-instance]# pwd/usr/local/tomcat-instance[[email protected] tomcat-instance]# ll总用量 24-

【转】Nginx+Tomcat+Memcached集群Session共享

cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael Jordan”,同时还对所创建的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path=/;domain=msn.com; expires=Monday,01-Mar-99 00:00:01 GMT 上面这个H

项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享

因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXin(开源的微信开发SDK)开发的一款微信应用类系统,主要业务是围绕当下流行的微信元素,如:微官网.微商城.微分销.营销活动.会员卡等. 关于RabbitHub详情请戳: .NET 平台下的插件化开发内核(Rabbit Kernel) RabbitHub开源情况及计划 关于Rabbit.WeiXin详