zoukankan      html  css  js  c++  java
  • Tomcat8利用Redis配置Session共享

    同一个应用在运行多个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服务即可

    相关的文章

  • 相关阅读:
    13.2 抽像类与体类(Abstract & Concrete Classes) 简单
    13.3 深度隔离的界面(Deeply Parted interface) 简单
    计算天数(C++)_学习 简单
    13.1.2 纯虚函数(Pure Virutal Functions) 简单
    C++ operator关键字(重载操作符) 简单
    二月一共多少天 简单
    重载运算符操作_学习 简单
    计算两个日期之间的天数(C++) 简单
    1.2 连接信号和响应函数 简单
    用Android手机做台式机无线网卡
  • 原文地址:https://www.cnblogs.com/cgli/p/7920573.html
Copyright © 2011-2022 走看看