文档章节

redis实现session共享

chaun
 chaun
发布于 2016/05/16 22:57
字数 299
阅读 1053
收藏 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
粉丝 88
博文 270
码字总数 96237
作品 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
分布式学习(4) ---- Spring Session + Redis实现分布式Session共享

单个服务器的应用,Tomcat会将Session保存在本机内存中,但一旦涉及到分布式应用,如何实现不同服务器间的Session共享问题呢? 目前比较主流的方式还是基于分布式缓存Memcached、redis实现,...

KKys
2017/02/07
0
0
spring-session + redis 实现集群 session 共享

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

大兵瑞恩
2017/11/02
0
5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue+element-ui操作删除(单行和批量删除)

页面展示: <template><!-- 表格内容 --><el-table :data="packData" border style="width: 100%" ref="multipleTable" @selection-change="handleSelectionChange"><el-tab......

琴妹
8分钟前
0
0
基于vue(element ui) + ssm + shiro 的权限框架

zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目,网上有句话说,语言框架...

DarrenHu_吴邪
15分钟前
0
1
数据库水平切分(MyCat分片)

范围分片 io.mycat.route.function.AutoPartitionByLong 自动范围分片 Function名称:rang-long(配置文件默认) 枚举分片 io.mycat.route.function.PartitionByFileMap 枚举分片 Funtion名称...

这很耳东先生
16分钟前
0
0
读《HeadFirst设计模式》笔记之外观模式

外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 举个栗子: 建了一个家庭影院,但是每次享受家庭影院时,你发现需要执行 将灯...

suyain
18分钟前
0
0
MongoDB分片配置

简单注解: mongos 路由进程, 应用程序接入mongos再查询到具体分片,监听端口默认27017 config server 路由表服务, 每一台都具有全部chunk的路由信息 shard为数据存储分片, 每一片都可以是...

LUIS1983
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部