用redis实现tomcat集群下的session共享
上篇实现了 LINUX中NGINX反向代理下的TOMCAT集群()
这次我们在上篇的基础上实现session 共享问题
Nginx机器:192.168.1.108
两台tomcat机器分别是:192.168.1.168
192.168.1.178
一:测试session共享问题
在原index.jsp页面添加如下代码
SessionId:<%= session.getId() %>
<% String username =(String)session.getAttribute("username");
if(!"".equals(username)&& username!=null){
out.print("------username is "+session.getAttribute("username"));
} else {
out.print("------start username is null");
session.setAttribute("username", "lxs");
out.print("------now username is "+session.getAttribute("username"));
}
%>
此时,通过nginx 访问时 第一次访问的是 178那台机器
再次刷新时,访问了168那台机器
可以看出,此时 session 是不共享的,在集群下,分别创建了session
二:用redis实现 session 共享
实现 session 共享的方法有很多种,此次用的是把session存在 redis 中实现共享。
1.安装redis (如何安装请看)
redis也是安装在192.168.1.108,跟Nginx安装在同一台机器了
2.把需要的jar包分别拷贝到 两个tomcat 的lib目录下
3. 修改 context.xml 里的内容
分别在tomcat/conf/context.xml里添加如下内容
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="192.168.1.108"
port="6379"
database="0"
maxInactiveInterval="60" />
其中className 是固定的,取得是 jar包里的实现的类
host 是redis 的主机名 port是redis端口 database 是把session存放在redis的第几个库里,maxInactiveInterval表示session存活时间
4.再次测试session共享
经过前三步,已经实现了redis下的session共享问题,再次测试
分别启动redis,nginx,以及tomcat 再次访问http://192.168.1.108:7777/nginxTest/
此时nginx 首先转发到178那台机器,此时,session里的 username是为空的,然后往
username里存放了一个值,然后打印出了值
再次访问http://192.168.1.108:7777/nginxTest/,此时nginx 转到了168那台机器
此时 sessionid 跟178的一样。同时username 也是有值的,直接打印出了 值
这说明了 此时session 是共享的,同时在redis里也存进去了对应session
以上就是用redis实现tomcat集群下的session共享的详细内容,更多请关注其它相关文章!
下一篇: 仿百度联盟对联广告实现代码_广告代码
推荐阅读
-
PHP使用Redis实现Session共享的实现示例
-
nginx+tomcat实现负载均衡,使用redis session共享
-
SpringSession+Redis实现集群会话共享的方法
-
nginx+redis+springboot实现session共享的服务集群
-
Spring Boot分布式系统实践【扩展1】shiro+redis实现session共享、simplesession反序列化失败的问题定位及反思改进
-
tomcat+redis+nginx实现session共享缓存
-
基于Nginx分布式Tomcat+Redis 实现Session共享 for window
-
基于Nginx分布式Tomcat+Redis 实现Session共享 for window
-
关于 tomcat 集群中 session 共享的三种方法
-
关于 tomcat 集群中 session 共享的三种方法