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'?>

 

WEB-INF/web.xml

 

 

host="10.0.0.51"

port="6379"

password='123'

database="0"

maxInactiveInterval="60" />

  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" %>

TomcatA

TomcatA.linuxinfo.top

SessionID

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

<%=session.getId() %>

Createdon

<%=session.getCreationTime() %>

 

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. WEB-INF/web.xml
  4. memcachedNodes="m1:192.168.2.37:11211,m2:192.168.2.27:11211"
  5. failoverNodes="m2"
  6. requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  7. transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>
  8.  

     


  9. 重启服务:
    catalina.sh stop
    catalina.sh start
    3
    、下载memcached,启动服务
    yum install memcached -y
    systemctl start memcached