首页 > 其他 > 详细

tomcat redis session共享

时间:2019-03-22 10:30:52      阅读:179      评论:0      收藏:0      [点我收藏+]

?

  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)

?

apply plugin: ‘java‘

apply plugin: ‘maven‘

apply plugin: ‘signing‘

?

group = ‘com.orangefunction‘

version = ‘2.0.0‘

?

repositories {

mavenCentral()

}

?

compileJava {

sourceCompatibility = 1.8

targetCompatibility = 1.8

}

?

dependencies {

compile group: ‘org.apache.tomcat‘, name: ‘tomcat-catalina‘, version: ‘7.0.78‘

compile group: ‘redis.clients‘, name: ‘jedis‘, version: ‘2.5.2‘

compile group: ‘org.apache.commons‘, name: ‘commons-pool2‘, version: ‘2.6.0‘

//compile group: ‘commons-codec‘, name: ‘commons-codec‘, version: ‘1.9‘

?

testCompile group: ‘junit‘, name: ‘junit‘, version: ‘4.+‘

testCompile ‘org.hamcrest:hamcrest-core:1.3‘

testCompile ‘org.hamcrest:hamcrest-library:1.3‘

testCompile ‘org.mockito:mockito-all:1.9.5‘

testCompile group: ‘org.apache.tomcat‘, name: ‘tomcat-coyote‘, version: ‘7.0.78‘

}

?

task javadocJar(type: Jar, dependsOn: javadoc) {

classifier = ‘javadoc‘

from ‘build/docs/javadoc‘

}

?

task sourcesJar(type: Jar) {

from sourceSets.main.allSource

classifier = ‘sources‘

}

?

artifacts {

archives jar

?

archives javadocJar

archives sourcesJar

}

?

//signing {

// sign configurations.archives

//}

task copyJars(type: Copy) {

from configurations.runtime

into ‘dist‘

}

?

uploadArchives {

repositories {

mavenDeployer {

beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

?

// repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {

// authentication(userName: sonatypeUsername, password: sonatypePassword)

// }

//repository(url: "https://oss.sonatype.org/content/repositories/snapshots") {

// authentication(userName: sonatypeUsername, password: sonatypePassword)

//}

?

pom.project {

name ‘tomcat-redis-session-manager‘

packaging ‘jar‘

description ‘Tomcat Redis Session Manager is a Tomcat extension to store sessions in Redis‘

url ‘https://github.com/jcoleman/tomcat-redis-session-manager‘

?

issueManagement {

url ‘https://github.com:jcoleman/tomcat-redis-session-manager/issues‘

system ‘GitHub Issues‘

}

?

scm {

url ‘https://github.com:jcoleman/tomcat-redis-session-manager‘

connection ‘scm:git:git://github.com/jcoleman/tomcat-redis-session-manager.git‘

developerConnection ‘scm:git:git@github.com:jcoleman/tomcat-redis-session-manager.git‘

}

?

licenses {

license {

name ‘MIT‘

url ‘http://opensource.org/licenses/MIT‘

distribution ‘repo‘

}

}

?

developers {

developer {

id ‘jcoleman‘

name ‘James Coleman‘

email ‘jtc331@gmail.com‘

url ‘https://github.com/jcoleman‘

}

}

}

}

}

}

技术分享图片

?

[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:

mget javolution-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. ?

    ?


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

tomcat redis session共享

原文:https://www.cnblogs.com/john5yang/p/10575887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!