• tomcat redis session共享


    1. 编译redis所需要的序列化包

    安装 gradle

    Linux & MacOS users

    Configure your PATH environment variable to include the bin directory of the unzipped distribution, e.g.:

    $ export PATH=$PATH:/opt/gradle/gradle-5.3/bin

    $ mkdir /opt/gradle

    $ unzip -d /opt/gradle gradle-5.3-bin.zip

    $ ls /opt/gradle/gradle-5.3

    1. 拉源码包

    git clone https://github.com/jcoleman/tomcat-redis-session-manager.git

    1. 编译

    [root@oldboy tomcat-redis-session-manager]# cat build.gradle

    tomcat 版本 7.0.78

    jdk版本 1.8

    [root@oldboy ~]# java -version

    java version "1.8.0_151"

    Java(TM) SE Runtime Environment (build 1.8.0_151-b12)

     

      1 [root@oldboy tomcat-redis-session-manager]# cat build.gradle
      2 apply plugin: 'java'
      3 apply plugin: 'maven'
      4 apply plugin: 'signing'
      5 
      6 group = 'com.orangefunction'
      7 version = '2.0.0'
      8 
      9 repositories {
     10   mavenCentral()
     11 }
     12 
     13 compileJava {
     14   sourceCompatibility = 1.8
     15   targetCompatibility = 1.8
     16 }
     17 
     18 dependencies {
     19   compile group: 'org.apache.tomcat', name: 'tomcat-catalina', version: '7.0.78'
     20   compile group: 'redis.clients', name: 'jedis', version: '2.5.2'
     21   compile group: 'org.apache.commons', name: 'commons-pool2', version: '2.6.0'
     22   //compile group: 'commons-codec', name: 'commons-codec', version: '1.9'
     23 
     24   testCompile group: 'junit', name: 'junit', version: '4.+'
     25   testCompile 'org.hamcrest:hamcrest-core:1.3'
     26   testCompile 'org.hamcrest:hamcrest-library:1.3'
     27   testCompile 'org.mockito:mockito-all:1.9.5'
     28   testCompile group: 'org.apache.tomcat', name: 'tomcat-coyote', version: '7.0.78'
     29 }
     30 
     31 task javadocJar(type: Jar, dependsOn: javadoc) {
     32   classifier = 'javadoc'
     33   from 'build/docs/javadoc'
     34 }
     35 
     36 task sourcesJar(type: Jar) {
     37   from sourceSets.main.allSource
     38   classifier = 'sources'
     39 }
     40 
     41 artifacts {
     42   archives jar
     43 
     44   archives javadocJar
     45   archives sourcesJar
     46 }
     47 
     48 //signing {
     49  // sign configurations.archives
     50 //}
     51 task copyJars(type: Copy) {
     52   from configurations.runtime
     53   into 'dist'  
     54 }
     55 
     56 uploadArchives {
     57   repositories {
     58     mavenDeployer {
     59       beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
     60 
     61      //repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
     62      //authentication(userName: sonatypeUsername, password: sonatypePassword)
     63      //}
     64      //repository(url: "https://oss.sonatype.org/content/repositories/snapshots") {
     65      //authentication(userName: sonatypeUsername, password: sonatypePassword)
     66      //}
     67 
     68       pom.project {
     69         name 'tomcat-redis-session-manager'
     70         packaging 'jar'
     71         description 'Tomcat Redis Session Manager is a Tomcat extension to store sessions in Redis'
     72         url 'https://github.com/jcoleman/tomcat-redis-session-manager'
     73 
     74         issueManagement {
     75           url 'https://github.com:jcoleman/tomcat-redis-session-manager/issues'
     76           system 'GitHub Issues'
     77         }
     78 
     79         scm {
     80           url 'https://github.com:jcoleman/tomcat-redis-session-manager'
     81           connection 'scm:git:git://github.com/jcoleman/tomcat-redis-session-manager.git'
     82           developerConnection 'scm:git:git@github.com:jcoleman/tomcat-redis-session-manager.git'
     83         }
     84 
     85         licenses {
     86           license {
     87             name 'MIT'
     88             url 'http://opensource.org/licenses/MIT'
     89             distribution 'repo'
     90           }
     91         }
     92 
     93         developers {
     94           developer {
     95             id 'jcoleman'
     96             name 'James Coleman'
     97             email 'jtc331@gmail.com'
     98             url 'https://github.com/jcoleman'
     99           }
    100         }
    101       }
    102     }
    103   }
    104 }

     

    [root@oldboy tomcat-redis-session-manager]# gradle build -x test copyJars

    在tomcat-redis-session-manager/build/libs/目录下生成以下几个包

    在tomcat-redis-session-manager/dist/下生成以下几个包

    复制3个文件到tomcat/lib目录下

    [root@oldboy dist]# cp jedis-2.5.2.jar tomcat-redis-session-manager-2.0.0.jar commons-pool2-2.6.0.jar /usr/local/tomcat/lib/

    编写tomcat context.xml文件添加redis信息

    [root@oldboy ~]# vim /usr/local/tomcat/conf/context.xml

    <?xml version='1.0' encoding='utf-8'?>

    <!--

    Licensed to the Apache Software Foundation (ASF) under one or more

    contributor license agreements. See the NOTICE file distributed with

    this work for additional information regarding copyright ownership.

    The ASF licenses this file to You under the Apache License, Version 2.0

    (the "License"); you may not use this file except in compliance with

    the License. You may obtain a copy of the License at

     

    http://www.apache.org/licenses/LICENSE-2.0

     

    Unless required by applicable law or agreed to in writing, software

    distributed under the License is distributed on an "AS IS" BASIS,

    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

    See the License for the specific language governing permissions and

    limitations under the License.

    -->

    <!-- The contents of this file will be loaded for each web application -->

    <Context>

     

    <!-- Default set of monitored resources -->

    <WatchedResource>WEB-INF/web.xml</WatchedResource>

     

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->

    <!--

    <Manager pathname="" />

    -->

     

    <!-- Uncomment this to enable Comet connection tacking (provides events

    on session expiration as well as webapp lifecycle) -->

    <!--

    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />

    -->

    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />

    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"

    host="10.0.0.51"

    port="6379"

    password='123'

    database="0"

    maxInactiveInterval="60" />

    </Context>

    1. 测试结果.随便刷新 seisson不变

    1. 存到redis的session数据

    1. jdk安装
      rpm -ivh jdk-8u151-linux-x64.rpm 
      如图:

      2
      tomcat下载、解压
      tomcat
      下载地址:http://tomcat.apache.org/
      tar xf apache-tomcat-7.0.78.tar.gz -C /usr/local/
      ln -s apache-tomcat-7.0.78 tomcat
      3
      、配置path环境变量
      vi /etc/profile.d/tomcat.sh
      export CATALINA_BASE=/usr/local/tomcat
      export PATH=$CATALINA_BASE/bin:$PATH 
      chmod +x /etc/profile.d/tomcat.sh #
      赋予可执行权限
      source /etc/profile.d/tomcat.sh
      4
      、创建测试网页的发布目录
      mkdir /usr/local/tomcat/webapps/test/

    [root@oldboy dist]# cat /usr/local/tomcat/webapps/test/index.jsp

    <%@ page language="java" %>

    <html>

    <head><title>TomcatA</title></head>

    <body>

    <h1><font color="red">TomcatA.linuxinfo.top</font></h1>

    <tablealign="centre" border="1">

    <tr>

    <td>SessionID</td>

    <% session.setAttribute("linuxinfo.top","linuxinfo.top");%>

    <td><%=session.getId() %></td>

    </tr>

    <tr>

    <td>Createdon</td>

    <td><%=session.getCreationTime() %></td>

    </tr>

    </table>

    </body>

    </html>

     

    6、分别启动tomcat
    catalina.sh start #
    可也用全路径/usr/local/tomcat/bin/startup.sh
    7
    、访问192.168.2.197,测试如下,查看session ID

     

     

     

    1下载五个jar包,将jar包放在/usr/local/tomcat/lib:

    mgetjavolution-5.4.3.1.jar

    memcached-session-manager-1.8.0jar

    memcached-session-manager-tc7-1.8.0.jar

    msm-javolution-serializer-1.8.0.jar

    spymemcached-1.8.0.jar

     

     

    1. contest.xml段定义一个用于测试的context容器,并在其中创建一个会话管理器。
      添加如下信息
      vim /usr/local/tomcat/conf/context.xml"
    2. <?xml version='1.0' encoding='utf-8'?>
    3. <!--
    4. Licensed to the Apache Software Foundation (ASF) under one or more
    5. contributor license agreements. See the NOTICE file distributed with
    6. this work for additional information regarding copyright ownership.
    7. The ASF licenses this file to You under the Apache License, Version 2.0
    8. (the "License"); you may not use this file except in compliance with
    9. the License. You may obtain a copy of the License at
    10. http://www.apache.org/licenses/LICENSE-2.0
    11. Unless required by applicable law or agreed to in writing, software
    12. distributed under the License is distributed on an "AS IS" BASIS,
    13. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14. See the License for the specific language governing permissions and
    15. limitations under the License.
    16. -->
    17. <!-- The contents of this file will be loaded for each web application -->
    18. <Context>
    19. <!-- Default set of monitored resources -->
    20. <WatchedResource>WEB-INF/web.xml</WatchedResource>
    21. <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    22. <!--
    23. <Manager pathname="" />
    24. -->
    25. <!-- Uncomment this to enable Comet connection tacking (provides events
    26. on session expiration as well as webapp lifecycle) -->
    27. <!--
    28. <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    29. -->
    30. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    31. memcachedNodes="m1:192.168.2.37:11211,m2:192.168.2.27:11211"
    32. failoverNodes="m2"
    33. requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
    34. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>
    35. </Context>

       

       


    36. 重启服务:
      catalina.sh stop
      catalina.sh start
      3
      、下载memcached,启动服务
      yum install memcached -y
      systemctl start memcached
  • 相关阅读:
    checkpoint出现的时间
    快速断开当前数据库的所有连接的方法
    SQLSERVER备份数据库的时候copy only选项的意思
    SQLSERVER备份事务日志的作用
    SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
    Windows Azure终于到来中国了
    SQLSERVER2005的安装目录结构(下)
    SQLSERVER2005的安装目录结构(上)
    给大家分享两款正在使用的reflector插件
    一套内容采集系统 解放编辑人员
  • 原文地址:https://www.cnblogs.com/john5yang/p/10575887.html
Copyright © 2020-2023  润新知