tomcat redis session共享
-
编译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
-
拉源码包
git clone https://github.com/jcoleman/tomcat-redis-session-manager.git
-
编译
[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'?>
host="10.0.0.51"
port="6379"
password='123'
database="0"
maxInactiveInterval="60" />
-
测试结果.随便刷新 seisson不变
-
存到redis的session数据
- 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.linuxinfo.top
<% session.setAttribute("linuxinfo.top","linuxinfo.top");%>
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
- 在contest.xml段定义一个用于测试的context容器,并在其中创建一个会话管理器。
添加如下信息
vim /usr/local/tomcat/conf/context.xml" - <?xml version='1.0' encoding='utf-8'?>
-
WEB-INF/web.xml - memcachedNodes="m1:192.168.2.37:11211,m2:192.168.2.27:11211"
- failoverNodes="m2"
- requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
- transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>
-
重启服务:
catalina.sh stop
catalina.sh start
3、下载memcached,启动服务
yum install memcached -y
systemctl start memcached