• 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服务即可

    相关的文章

  • 相关阅读:
    shell脚本比较字符串相等
    从自身的经历讨论手工测试与自动化测试
    读《Linux Shell脚本攻略》(第2版) 一遍、二遍体会
    也许开发需要的只是一份简单明了的表格
    linux 命令:tr 的简单使用
    docker的数据持久化
    docker基础操作
    centos7 docker镜像源设置
    DockerUI(图形化管理)
    Docker 常用命令
  • 原文地址:https://www.cnblogs.com/cgli/p/7920573.html
Copyright © 2020-2023  润新知