文档章节

redis实现session共享

chaun
 chaun
发布于 2016/05/16 22:57
字数 299
阅读 1067
收藏 3

一、使用TomcatClusterRedisSessionManager

1、nginx配置好两个tomcat实例分别为192.168.1.70:8080和192.168.1.51:8080,具体请参考之前的博客

2、下载TomcatClusterRedisSessionManager,根据如下步骤分别在两个tomcat上

Steps to be done,
1>. Move the downloaded jars to tomcat/lib directory
    * $catalina.home/lib/
    
2>. Add tomcat system property "catalina.base"
    * catalina.base="TOMCAT_LOCATION"

3>. Configure downloaded Redis credentials in RedisDataCache.properties file and move the file to tomcat/conf directory
    * tomcat/conf/RedisDataCache.properties

4>. Add the below two lines in tomcat/conf/context.xml
    * <Valve className="com.r.tomcat.session.management.RequestSessionHandlerValve"/>
    * <Manager className="com.r.tomcat.session.management.RequestSessionManager"/>

5>. Verify the session expiration time in tomcat/conf/web.xml
    * <session-config>
    *   <session-timeout>60<session-timeout>
    * <session-config>

3、编写测试页面,新建web工程test-tomcat并在webRoot下编写index.jsp如下,不同tomcat修改ip地址

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    192.168.1.70:${pageContext.session.id}
    <br>
  </body>
</html>

4、将上面的web工程分别放在tomcat/webapps目录下,在浏览器里面输入nginx访问地址,即可测试

停掉其中任何一台,session值不变,验证成功

二、tomcat-redis-session-manager

© 著作权归作者所有

共有 人打赏支持
chaun
粉丝 91
博文 269
码字总数 91059
作品 0
深圳
高级程序员
私信 提问
分布式集群系统下的高可用session解决方案

目前,为了使web能适应大规模的访问,需要实现应用的集群部署. 而实现集群部署首先要解决session的统一,即需要实现session的共享机制。 目前,在集群系统下实现session统一的有如下几种方案:...

凯文加内特
2015/03/19
0
0
跨二级域单点登录解决方案[php+redis]

cookie共享 + session共享 cookie共享:共享同一个session cookie,服务端接受到相同的session id session共享:共享同一个session系统,这样来自不同二级域的统一session id访问同一会话数据...

big_cat
2015/11/09
0
0
PHP单点登录

之前回答过同样的问题,我重新拿出来再回答一遍。题主请看 首先提醒一下题主不要被新技术吓到了,也不要去查什么SSO(Single Sign On,单点登录),那样只能增大你问题的复杂度和对这个问题的...

蜗牛奔跑
2016/11/20
50
0
spring-session + redis 实现集群 session 共享

目前市面上实现session共享的方案有很多,其中比较常用的是使用Tomcat、Jetty等web服务器提供的session共享功能,以此将session内容统一存放在数据库(如mysql)或者缓存(redis)中;另外一...

大兵瑞恩
2017/11/02
0
5
springboot中redis的使用和分布式session共享问题

本文旨在解决分布式系统的session如何共享问题,大致思路:session放入redis。其他解决方案:持久化、放cache等都可以,但是自从有了redis,这完全可以变的简简单单。 本文大致分两步: 1.sp...

梦想修补师
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

快速开发android,离不开这10个优秀的开源项目

作为一名菜鸡Android,时常瞻仰大佬们的开源项目是非常必要的。这里我为大家收集整理了10个优秀的开源项目,方便我们日常开发中学习! 作者:ListenToCode 博客:https://www.jianshu.com/p...

终端研发部
8分钟前
0
0
MiniUi tab页

architect刘源源
9分钟前
0
0
uitextview中'\n'不能换行的问题

后端返回的类似于这样的东西:'1、Fix bug;\n2、体验优化' 在textview里边是无法换行的,打断点发现 是因为 '\n'被转义成了'\\n'了 思路是replace。。。 _infoTextView.text = [self.info st...

RainOrz
14分钟前
0
0
年底了,该给自己写个总结了,一个六年女Java程序员的心声

简单的先说一下,坐标杭州,12届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的...

Java架构资源分享
18分钟前
2
0
Shell脚本——cat/EOF输出多行

在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也...

吴伟祥
19分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部