Centos6.5系统搭建tomcat7.0.57通过msm实现session共享

Centos6.5系统搭建tomcat7.0.57通过msm实现session共享,第1张

Centos6.5系统搭建tomcat7.0.57通过msm实现session共享

通常,实现会话共享最常见的方式是通过memcached-session-manager。我来说说如何通过memcached-session-manager实现会话共享。

  • 首先,为软件建立一个目录,并输入这个目录。

  • [root@node1~]#mkdir-p/Taokey/tools [root@node1~]#CD/Taokey/tools/ 2.将下载的apache-tomcat-7.0.57.tar.gz和jdk-7u71-linux-x64.gz软件包上传到服务器

    [root@node1 tools]# ls apache-tomcat-7.0.57.tar.gz  jdk-7u71-linux-x64.gz [root@node1 tools]# tar -zxf apache-tomcat-7.0.57.tar.gz  [root@node1 tools]# tar -zxf jdk-7u71-linux-x64.gz  [root@node1 tools]# ls apache-tomcat-7.0.57  jdk1.7.0_71

    3.创建/data目录,重命名tomcat,并将tomcat和jdk移动到data目录。

    [root@node1 tools]# mv apache-tomcat-7.0.57 node1 [root@node1 tools]# mkdir /data    [root@node1 tools]# cp -r jdk1.7.0_71 node1 /data

    4.配置系统的jdk环境变量

    [root@node1 data]# tail -7 /etc/profile JAVA_HOME=/data/jdk1.7.0_71 JRE_HOME=/data/jdk1.7.0_71/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH export PATH=$PATH:JAVA_HOME/bin export JAVA_HOME [root@node1 data]# source /etc/profile

    5.修改默认项目路径。

    [root@node1 data]# vim node1/conf/server.xml +125 <Host name="localhost"  appBase="/data/"  #默认的是webapps,我修改成了/data/目录。

    6.向tomcat默认启动和关闭脚本添加执行权限。

    [root@node1 data]# cd node1/bin/ [root@node1 bin]# chmod +x startup.sh  [root@node1 bin]# chmod +x shutdown.sh 7.启动tomcat,看下是否成功运行。 [root@node1 bin]# ./startup.sh  Using CATALINA_BASE:   /data/node1 Using CATALINA_HOME:   /data/node1 Using CATALINA_TMPDIR: /data/node1/temp Using JRE_HOME:        /data/jdk1.7.0_71/jre Using CLASSPATH:       /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar Tomcat started. [root@node1 bin]# ps -ef | grep java root      2036     1 83 12:41 pts/1    00:00:04 /data/jdk1.7.0_71/jre/bin/java -Djava.util.logging.config.file=/data/node1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/data/node1/endorsed -classpath /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar -Dcatalina.base=/data/node1 -Dcatalina.home=/data/node1 -Djava.io.tmpdir=/data/node1/temp org.apache.catalina.startup.Bootstrap start root      2050  1907  0 12:42 pts/1    00:00:00 grep java

    8.看看tomcat默认监听的端口。

    [root@node1 bin]# netstat -anpt | grep java tcp        0      0 :::8080                     :::*                        LISTEN      2036/java            tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      2036/java            tcp        0      0 :::8009                     :::*                        LISTEN      2036/java

    9.在项目路径下创建一个测试网页,测试下一个网页是否可以打开。

    [root@node1 bin]# mkdir /data/ROOT [root@node1 bin]# touch /data/ROOT/test.html [root@node1 bin]# echo "hello world" >/data/ROOT/test.html  [root@node1 bin]# cat /data/ROOT/test.html hello world [root@node1 ~]# curl -I 192.168.1.15:8080/test.html HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Accept-Ranges: bytes ETag: W/"12-1421038003000" Last-Modified: Mon, 12 Jan 2015 04:46:43 GMT Content-Type: text/html Content-Length: 12 Date: Mon, 12 Jan 2015 04:48:16 GMT [root@node1 ~]# wget 192.168.1.15:8080/test.html [root@node1 ~]# cat test.html  hello world tomcat7.0.57搭建完毕。

    第一个tomcat实例node1已经构建完成,按照这个步骤就可以构建tomcat实例node2了。Tomcat构建起来相对简单,这里就不赘述了。在设置了两个tomcat实例(node1和node2)之后,通过结合memcache和msm实现了会话共享。

    Memcahce已经安装,请参加详细的安装步骤:

    10.安装memcahce。

    cd /taokey/tools/ curl -O http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz tar -zxvf libevent-2.0.13-stable.tar.gz  cd libevent-2.0.13-stable ./configure --prefix=/usr make && make install curl -O http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz tar -zxvf memcached-1.4.0.tar.gz  cd memcached-1.4.0 ./configure --with-libevent=/usr/ make make install /usr/local/bin/memcached -d -m 200 -u root -c 256 -p 11211 -P /tmp/memcache.pid 测试node1和node2连接memcache是否正常。 [root@node1 ~]# telnet 192.168.1.84 11211 Trying 192.168.1.84... Connected to 192.168.1.84. Escape character is '^]'. [root@node2 ~]# telnet 192.168.1.84 11211 Trying 192.168.1.84... Connected to 192.168.1.84. Escape character is '^]'. 经过测试,memcache服务是没有问题。

    要实现会话共享,需要上传tomcat7所需的memcached-session-manager的jar包。

    tomcat7实现会话共享所需的jar包下载地址:

    http://down.51cto.com/data/1974783

    11.以下是所有jar包的列表,包括tomcat自己的包和实现共享会话所需的包:

    [root@node1 ~]# cd /data/node1/lib/ [root@node1 lib]# ls annotations-api.jar         jasper-el.jar                            minlog-1.2.jar                 tomcat-dbcp.jar catalina-ant.jar            jasper.jar                               msm-kryo-serializer-1.6.5.jar  tomcat-i18n-es.jar catalina-ha.jar             javolution-5.4.3.1.jar                   reflectasm-0.9.jar             tomcat-i18n-fr.jar catalina.jar                jsp-api.jar                              servlet-api.jar                tomcat-i18n-ja.jar catalina-tribes.jar         kryo-1.03.jar                            spymemcached-2.10.2.jar        tomcat-jdbc.jar couchbase-client-1.2.2.jar  kryo-serializers-0.10.jar                tomcat7-websocket.jar          tomcat-util.jar ecj-4.4.jar                 memcached-session-manager-1.6.5.jar      tomcat-api.jar                 websocket-api.jar el-api.jar                  memcached-session-manager-tc7-1.6.5.jar  tomcat-coyote.jar [root@node1 lib]# du -sh . 8.2M    . [root@node2 ~]# cd /data/node2/lib/ [root@node2 lib]# ls annotations-api.jar         jasper-el.jar                            minlog-1.2.jar                 tomcat-dbcp.jar catalina-ant.jar            jasper.jar                               msm-kryo-serializer-1.6.5.jar  tomcat-i18n-es.jar catalina-ha.jar             javolution-5.4.3.1.jar                   reflectasm-0.9.jar             tomcat-i18n-fr.jar catalina.jar                jsp-api.jar                              servlet-api.jar                tomcat-i18n-ja.jar catalina-tribes.jar         kryo-1.03.jar                            spymemcached-2.10.2.jar        tomcat-jdbc.jar couchbase-client-1.2.2.jar  kryo-serializers-0.10.jar                tomcat7-websocket.jar          tomcat-util.jar ecj-4.4.jar                 memcached-session-manager-1.6.5.jar      tomcat-api.jar                 websocket-api.jar el-api.jar                  memcached-session-manager-tc7-1.6.5.jar  tomcat-coyote.jar [root@node2 lib]# du -sh . 8.2M    .

    12.修改两个tomcat的配置文件context.xml。

    修改后的tomcat node1配置文件 [root@node1 ~]# cd /data/node1/conf/ [root@node1 conf]# tail context.xml      <!--     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />     -->     <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"      memcachedNodes="n1:192.168.1.84:11211"      requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"      sessionBackupTimeout="1800000"      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"      /> </Context> 修改后的tomcat node2配置文件 [root@node2 ~]# cd /data/node2/conf/ [root@node2 conf]# tail context.xml      <!--     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />     -->     <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"     memcachedNodes="n1:192.168.1.84:11211"     requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"     sessionBackupTimeout="1800000"     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"      /> </Context>

    13.修改后,创建一个index.jsp测试会话共享文档,并重启两个tomcat实例。

    重新启动实例节点1。

    [root@node1 ROOT]# cat index.jsp  <html>  <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Tomcat+memcached共享session测试</title>  </head> <body> SessionID:<%=session.getId()%> <BR>  SessionIP:<%=request.getServerName()%> <BR>  SessionPort:<%=request.getServerPort()%> <BR> <%  out.println("This is Tomcat Server 8081."); %> %</body>  %</html> /data/node1/bin/shutdown.sh [root@node1 ~]# ps -ef | grep java root      9063  1907  0 17:20 pts/1    00:00:00 grep java /data/node1/bin/startup.sh [root@node1 ~]# netstat -anpt | grep 8080 tcp        0      0 :::8080                     :::*                        LISTEN      9072/java            tcp        0      0 ::ffff:127.0.0.1:8080       ::ffff:127.0.0.1:40496      TIME_WAIT   -

    14.重新启动实例tomcatnode2。

    [root@node2 ROOT]# cat index.jsp  <html>  <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Tomcat+memcached共享session测试</title>  </head> <body> SessionID:<%=session.getId()%> <BR>  SessionIP:<%=request.getServerName()%> <BR>  SessionPort:<%=request.getServerPort()%> <BR> <%  out.println("This is Tomcat Server 8081."); %> %%</body>  %%</html> [root@node2 ~]# /data/node2/bin/shutdown.sh  [root@node2 ~]# ps -ef | grep java root      2830  2081  0 17:22 pts/0    00:00:00 grep java [root@node2 ~]# /data/node2/bin/startup.sh  [root@node2 ~]# netstat -anpt | grep 8080 tcp        0      0 :::8080                     :::*                        LISTEN      2840/java

    15.访问nginx代理的服务器IP,192.168.1.15

    16.停止节点1,然后测试192.168.1.15。

    [root@node1 ~]# /data/node1/bin/shutdown.sh  Using CATALINA_BASE:   /data/node1 Using CATALINA_HOME:   /data/node1 Using CATALINA_TMPDIR: /data/node1/temp Using JRE_HOME:        /data/jdk1.7.0_71/jre Using CLASSPATH:       /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar [root@node1 ~]# ps -ef | grep java root      9132  1907  0 17:29 pts/1    00:00:00 grep java

    17.会话信息仍然相同。现在,让我们打开节点1,关闭节点2,并对其进行测试。会话信息,

    [root@node1 ~]# /data/node1/bin/startup.sh  Using CATALINA_BASE:   /data/node1 Using CATALINA_HOME:   /data/node1 Using CATALINA_TMPDIR: /data/node1/temp Using JRE_HOME:        /data/jdk1.7.0_71/jre Using CLASSPATH:       /data/node1/bin/bootstrap.jar:/data/node1/bin/tomcat-juli.jar Tomcat started. [root@node1 ~]# netstat -anpt | grep java tcp        0      0 :::8080                     :::*                        LISTEN      9144/java            tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      9144/java            tcp        0      0 :::8009                     :::*                        LISTEN      9144/java            tcp        0      0 ::ffff:192.168.1.15:58421   ::ffff:192.168.1.84:11211   ESTABLISHED 9144/java            tcp        0      0 ::ffff:192.168.1.15:58418   ::ffff:192.168.1.84:11211   ESTABLISHED 9144/java            tcp        0      0 ::ffff:192.168.1.15:58419   ::ffff:192.168.1.84:11211   ESTABLISHED 9144/java            tcp        0      0 ::ffff:192.168.1.15:58420   ::ffff:192.168.1.84:11211   ESTABLISHED 9144/java       [root@node2 ~]# /data/node2/bin/shutdown.sh  Using CATALINA_BASE:   /data/node2 Using CATALINA_HOME:   /data/node2 Using CATALINA_TMPDIR: /data/node2/temp Using JRE_HOME:        /data/jdk1.7.0_71/jre Using CLASSPATH:       /data/node2/bin/bootstrap.jar:/data/node2/bin/tomcat-juli.jar [root@node2 ~]# ps -ef | grep java root      2896  2081  0 17:31 pts/0    00:00:00 grep java

    会话已成功实现。

    tomcat7实现会话共享所需的jar包下载地址:

    http://down.51cto.com/data/1974783

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/783664.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-04
    下一篇 2022-05-04

    发表评论

    登录后才能评论

    评论列表(0条)

    保存