同一个应用在运行多个tomcat实例的时候,经常需要共享Session。tomcat配置共享session有多种方式

1、利用tomcat自身集群特性进行配置;

2、利用Memcache第三方缓存进行配置;

3、利用Redis第三方缓存进行配置;

由于生产环境我们主使用了redis(在阿里云中使用了redis服务)本文重点介绍了tomcat利用redis进配置session共享。

重点在于tomcat 8.x

因为tomcat7还有点不同,tomcat7的配置可以利用一个开源组件,直接配置即可以使用,比较简单方便(直接参考这个文章即可:http://blog.csdn.net/qq584852076/article/details/46502185)。

tomcat8却是有不同的,开源组件明确说是不支持的。

开源组件在这里: https://github.com/jcoleman/tomcat-redis-session-manager

打开网址之后,看Readme说明:

分步指南

1. 下载开源项目

        
2. 创建maven项目(或者直接用gradle编译也可以)
        创建项目并把src/main/java/com/orangefunction/tomcat/redissessions/复制到项目
3. 支持tomcat8需修改代码
        RedisSessionManager.java        
  @@ -713,9 +713,9 @@ private void initializeSerializer() throws ClassNotFoundException, IllegalAccess
  serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();   serializer = (Serializer) Class.forName(serializationStrategyClass).newInstance();
       
  Loader loader =null;   Loader loader =null;
  -   +Context context =this.getContext();
  - if (getContainer()!=null) {   + if (context!=null) {
  - loader =getContainer().getLoader();   + loader =context.getLoader();
  }   }
       
  ClassLoader classLoader =null;   ClassLoader classLoader =null;
 
 
 
4. 打包部署
    将实现包和依赖包 commons-pool2-2.2.jar、jedis-2.5.2.jar、tomcat-redis-session-manager-master-2.0.0.jar拷贝到tomcat的lib下
    新增tomcat context.xml配置
   

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> 
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="r-wz97b7d28a98aa44.redis.rds.aliyuncs.com"
port="6379"
database="0"
password="xxxxxxx"
maxInactiveInterval="60" />

 
 

建议引用的几个jar( commons-pool2-2.2.jar、jedis-2.5.2.jar)和新编译的jar(tomcat-redis-session-manager-2.0.0.jar)放在tomcat的 lib下面。

同时如果应用下的WEB-INF/lib有相同的jar去掉

重启tomcat服务即可

相关的文章

Tomcat8利用Redis配置Session共享的更多相关文章

  1. Spring Boot 多站点利用 Redis 实现 Session 共享

    如何在不同站点(web服务进程)之间共享会话 Session 呢,原理很简单,就是把这个 Session 独立存储在一个地方,所有的站点都从这个地方读取 Session. 通常我们使用 Redis 来 ...

  2. Nginx集群配置与redis的session共享策略

    一.什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...

  3. Tomcat通过Redis实现session共享的完整部署记录

    对于生产环境有了一定规模的tomcat集群业务来说,要实现session会话共享,比较稳妥的方式就是使用数据库持久化session.为什么要持久化session(共享session)呢?因为在客户端每 ...

  4. nginx反向代理做负载均衡以及使用redis实现session共享配置详解

    1.为什么要用nginx做负载均衡? 首先我们要知道用单机tomcat做的网站,比较理想的状态下能够承受的并发访问在150到200, 按照并发访问量占总用户数的5%到10%技术,单点tomcat的用户 ...

  5. 分布式中使用Redis实现Session共享(二)

    上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见的session开始,刚好也重新学习一遍session的实现原理.在阅读之前假设你已经会使用nginx+i ...

  6. Nginx+tomcat+redis实现session共享

    Nginx+tomcat+redis实现session共享 1,安装nginx,使用yum -y install nginx 这是epel源中的,需要安装epel源. 2,配置nginx. 在ngin ...

  7. [转]分布式中使用Redis实现Session共享(二)

    本文转自:http://www.cnblogs.com/yanweidie/p/4678095.html 上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见 ...

  8. (转)分布式中使用Redis实现Session共享(二)

    上一篇介绍了一些redis的安装及使用步骤,本篇开始将介绍redis的实际应用场景,先从最常见的session开始,刚好也重新学习一遍session的实现原理.在阅读之前假设你已经会使用nginx+i ...

  9. nginx负载均衡中利用redis解决session一致性问题

    关于session一致性的现象及原因不是本小作文的重点,可以另行找杜丽娘O(∩_∩)O哈哈~重点是利用redis集中存储共享session的实际操作. 一.业务场景:nginx/tomcat/redi ...

随机推荐

  1. bootstrap控件点击之后没有反应的原因

    引用的jquery.js文件要放到bootstrap.js的前面 jquery.js文件版本太低. 这些问题可以通过firebug或者谷歌调试器发现. 问题很简单,简单记录下,以免以后遗忘.

  2. css滤镜让图片模糊

    .mhblur { filter: url(blur.svg#blur); /* FireFox, Chrome, Opera */ -webkit-filter: blur(53px); /* Ch ...

  3. Thinkphp5图片、音频和视频文件上传

    首先是同步上传,最为基础的上传的方式,点击表单提交之后跳转那种.如下前端代码 <!DOCTYPE html> <html lang="en"> <he ...

  4. C++ 普通函数和虚函数调用的区别

    引出:写个类A,声明类A指针指向NULL,调用类A的方法会有什么后果,编译通过吗,运行会通过吗? #include<stdio.h> #include<iostream> us ...

  5. nginx 设置默认虚拟 host

    nginx 设置默认虚拟 host listren 80 default_server

  6. JAVA的中文字符乱码问题

    来源:http://luzefengoo.blog.163.com/blog/static/1403593882012754428536/ JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用 ...

  7. 织梦CMS建站入门学习(一)

    一.下载与安装. 首先到织梦官网下载软件,可选择UTF8或GBK不同编码格式,如果电脑没有PHP环境,还要下载dede自带的PHP环境软件. 将软件中的upload文件夹内容复制到WWW文件夹下,然后 ...

  8. React & event-pooling & bug

    React & event-pooling & bug event-pooling https://reactjs.org/docs/events.html#event-pooling ...

  9. HSF原理

    HSF(High-speed Service Framework),高速服务框架,是阿里系主要采用的服务框架,其目的是作为桥梁联通不同的业务系统,解耦系统之间的实现依赖.其高速体现在底层的非阻塞I/O ...

  10. 第一篇:python基础_1

    本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...