文档章节

redis实现session共享

chaun
 chaun
发布于 2016/05/16 22:57
字数 299
阅读 1062
收藏 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
分布式学习(4) ---- Spring Session + Redis实现分布式Session共享

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

KKys
2017/02/07
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

没有更多内容

加载失败,请刷新页面

加载更多

Android适配相关

Android 6.0、7.0、8.0、9.0适配 关于android适配的好文章 Android权限申请库 AndPermission 国产,有中文文档,链式调用,用起来简单 easypermissions 谷歌官方出品 PermissionsDispatcher ...

Skqing
13分钟前
1
0
Google推出了以隐私和安全为中心的变更

作为Google Play开发者政策更新的一部分,Google推出了以隐私和安全为中心的变更。 在旨在保护敏感数据的行动中,有针对请求短信和呼叫记录权限的应用程序的新规则。 即日起,只有配置为默认...

问题终结者
16分钟前
0
0
Kotlin个人理解入门篇

了解kotlin并开始使用其做开发,是从最近之前做的项目开始之初,用的是kotlin,发现kotlin是一个特简洁,很多语法糖提供使用,可以提高开发效率的语言。谷歌在2017年谷歌大会正式宣布支持and...

DannyCoder
22分钟前
0
0
springboot+rabbitmq整合

1.安装好rabbitmq 2.新建一个springBoot项目:rabbitmq_demo 3.添加pom依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifact......

狼王黄师傅
28分钟前
0
0
使用JDK自带的jmap和jhat监控处于运行状态的Java进程

对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等。 本文基于JDK1.8而写成。 我下...

JerryWang_SAP
38分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部