tomcat+memcached实现sessions共享

以前公司就用到这个、也简单写过一个文档、后来发现写的不够详细以至于别人看到我的文档、总是不知所措、这次利用空闲时间写一份详细的、共享给各位刚接触这个技术的小伙伴!!!

实验环境:虚拟机centOS6.6_x89_64  Minal模式

软件版本:apache-tomcat-7.0.64.tar.gz

jdk-7u45-linux-x64.tar.gz

libevent-2.0.21-stable.tar.gz

memcached-1.4.21.tar.gz

以及和tomcat版本相对经的jar包

实验前先关闭seLinux和防火墙

setenfor 0

service iptables stop

本次实验还会用到一些基础依赖包如果觉得没安装好 可以运行一下命令 防止后面编译报错

yum groupinstall -y Development tools

好了  不废话  Go!Go!Go!

1、所有文件包都放在/usr/local/src/

[[email protected] ~]# cd /usr/local/src/

[[email protected] src]# ll

总用量 144688

-rw-r--r-- 1 root root   8858187 11月 24 19:39 apache-tomcat-7.0.64.tar.gz

-rw-r--r-- 1 root root 138094686 11月 24 19:40 jdk-7u45-linux-x64.tar.gz

-rw-r--r-- 1 root root    850772 11月 24 19:39 libevent-2.0.21-stable.tar.gz

-rw-r--r-- 1 root root    345892 11月 24 19:39 memcached-1.4.21.tar.gz

drwxr-xr-x 2 root root      4096 11月 24 19:40 serssion-jar

2、安装java并配置环境变量、检测jdk版本

[[email protected] src]# tar zxvf jdk-7u45-linux-x64.tar.gz

[[email protected] src]# mv jdk1.7.0_45/ /usr/local/jdk7

[[email protected] src]# vim /etc/profile

..........................................................

export JAVA_HOME=/usr/local/jdk7

export JRE_HOME=/usr/local/jdk7

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

..........................................................

如下图所示:

[[email protected] src]# source /etc/profile

[[email protected] src]# java -version

java version "1.7.0_45"

Java(TM) SE Runtime Environment (build 1.7.0_45-b18)

Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

3、安装tomcat

[[email protected] src]# tar zxvf apache-tomcat-7.0.64.tar.gz

[[email protected] src]# mv apache-tomcat-7.0.64 /usr/local/tomcat

[[email protected] src]# vim /usr/local/tomcat/bin/catalina.sh

..........................................................

JAVA_HOME=/usr/local/jdk7

CATALINA_HOME=/usr/local/tomcat

JAVA_OPTS="-server -XX:PermSize=128M -XX:MaxPermSize=512M -Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai -Djava.awt.headless=true"

..........................................................

如下图所示:

[[email protected] src]# /usr/local/tomcat/bin/startup.sh    //启动tomcat

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk7

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[[email protected] src]# ps aux |grep tomcat  //可以看到tomcat已经启动成功

root      1237  2.0 73.8 2335144 174376 pts/0  Sl   21:05   0:04 /usr/local/jdk7/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -XX:PermSize=128M -XX:MaxPermSize=512M -Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai -Djava.awt.headless=true -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

root      1271  0.0  0.3 103248   880 pts/0    S+   21:09   0:00 grep tomcat

[[email protected] src]# curl localhost:8080   //测试tomcat可以看到 没有问题

<!DOCTYPE html>

<html lang="en">

<head>

<title>Apache Tomcat/7.0.64</title>

<link href="favicon.ico" rel="icon" type="image/x-icon" />

<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />

<link href="tomcat.css" rel="stylesheet" type="text/css" />

</head>

4、编译安装memcached

[[email protected] src]# cp serssion-jar/* /usr/local/tomcat/lib/   //将msm依赖的jar包放到$TOMCAT_HOME/lib下

[[email protected] src]# tar zxvf libevent-2.0.21-stable.tar.gz

[[email protected] src]# cd libevent-2.0.21-stable

[[email protected] libevent-2.0.21-stable]# ./configure --prefix=/usr/local/libevent

[[email protected] libevent-2.0.21-stable]# make && make install

#每次编译最好用 echo $?  查看下编译是否成功

[[email protected] libevent-2.0.21-stable]# cd ..

[[email protected] src]# tar zxvf memcached-1.4.21.tar.gz

[[email protected] src]# cd memcached-1.4.21

[[email protected] memcached-1.4.21]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

[[email protected] memcached-1.4.21]# make && make install

[[email protected] memcached-1.4.21]# echo $?

0

5、修改tomcat的配置文件

[[email protected] memcached-1.4.21]# cd /usr/local/tomcat/

[[email protected] tomcat]# vim conf/server.xml

..........................................................

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

#如果要配置通一台机器上的多个tomcat、那么jvmRoute的标签要改成不同的

..........................................................

如图所示:

[[email protected] tomcat]# vim conf/context.xml

..........................................................

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:10.164.24.246:11211,n2:10.164.4.154:11211"

sticky="false"

sessionBackupAsync="false"

lockingMode="uriPattern:/path1|/path2"

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

#memcachedNodes="n1:10.164.24.246:11211,n2:10.164.4.154:11211"

#这个地方 如果是一台mem服务器 那么就写n1:IP:PORT 如果多台就n1..,n2..,n3..

..........................................................

如图所示这里以一台为例:

6、启动memcached

[[email protected] tomcat]# cd /usr/local/memcached/

[[email protected] memcached]# bin/memcached -d -m 256 -p 11211 -u root

#重启tomcat

[[email protected] memcached]# ps aux |grep tomcat

root      1237  0.4 54.6 2336172 129032 pts/0  Sl   21:05   0:08 /usr/local/jdk7/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -XX:PermSize=128M -XX:MaxPermSize=512M -Xms1024m -Xmx1024m -Duser.timezone=Asia/Shanghai -Djava.awt.headless=true -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

[[email protected] memcached]# kill -9 1237

[[email protected] memcached]# /usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat

Using CATALINA_HOME:   /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME:        /usr/local/jdk7

Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

#如下图可以看出  端口已被监听

[[email protected] memcached]# netstat -lnp |grep mem

tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      8207/bin/memcached

tcp        0      0 :::11211                    :::*                        LISTEN      8207/bin/memcached

udp        0      0 0.0.0.0:11211               0.0.0.0:*                               8207/bin/memcached

udp        0      0 :::11211                    :::*                                    8207/bin/memcached

[[email protected] memcached]# netstat -lnp |grep java

tcp        0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      8225/java

tcp        0      0 :::8009                     :::*                        LISTEN      8225/java

tcp        0      0 :::8080                     :::*                        LISTEN      8225/java

7、测试memcached

[[email protected] memcached]# yum install -y telnet

时间: 2024-10-01 04:34:47

tomcat+memcached实现sessions共享的相关文章

【Tomcat】Tomcat + Memcached 实现session共享

概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解决方案 环境 操作系统:Linux( centOS 6..5 版) 软件:Tomcat7    Memcached 实现原理 Tomcat + Memcached 实现session共享流程图 配置 安装Tomcat 2个和Memcached 1个,参考[Linux]Tomcat安装及一个服务器配置

tomcat + memcached session manager共享session

网上有很多关于通过MSM(memcached session manager)实现memcached共享session的文章,但是很多都是东拼西凑,误导别人.正巧最近有一个地方用到,特此总结一下. MSM支持tomcat6,tomcat7,tomcat8,MSM支持两种模式:sticky sessions(粘性session)和non-sticky sessions(非粘性session).我用到的是sticky session,所以以下都按照sticky session 来介绍.集群结构是2个

Tomcat+Memcached实现Session共享

在先前的例子中,我用Tomcat官方提供的Session复制方式实现Tomcat集群Session共享.今天,我用另一种方式Memcached-Session-Manager来实现Session共享.话不多说,上实例. Memcached-Session-Manager将Session序列化到Memcache中,序列化的组件有很多,比如: msm-kryo-serializer.msm-javolution-serializer等,这里使用msm-javolution-serializer,使用

【电商】nginx+tomcat+memcached实现session共享集群

在分布式多tomcat web集群环境下,首先要解决的是session的共享问题,一般的实现思路有: (1) session复制:多tomcat之间进行session的同步,集群中的tomcat存储相同的session信息 (2) 共享session存储:将session集中存储在同一个地方,如redis/memcached,甚至DB.tomcat本身的内存中并不存储session (3) session粘性:其实session粘性并不是session共享的方案,而是多tomcat的集群方案,配

tomcat篇之结合apache+tomcat+memcached做session共享

tomcat1:192.168.1.155 tomcat2:192.168.1.11 apache:192.168.1.155 前端代理apache设置,参考前面的tomcat文章(基于mod_proxy和mod_jk模块) 这里不再赘述,直接贴配置文件: cd /etc/httpd/conf.d [[email protected] conf.d]# cat mod_jk.conf LoadModule  jk_module  modules/mod_jk.so JkWorkersFile/e

nginx+tomcat+memcached实现session共享

一.工作原理及原理图<img class="alignnone wp-image-31" src="http://119.29.25.60/wp-content/uploads/2016/04/图片1.bmp" alt="图片1" width="342" height="254" />工作原理        Tomcat中自带缓存功能.Memcached时一个集中式缓存器,可以利用tomcat和

nginx+tomcat+memcached构建session共享集群

一.安装配置tomcat 配置前说明: 系统为centos7 m1.xsllqs.com地址为192.168.1.107 c1.xsllqs.com地址为192.168.1.114 c2.xsllqs.com地址为192.168.1.113 安装tomcat需要配合JDK使用,JDK有oracle JDK和open JDK两种 oracle JDK8的下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-down

Nginx+Tomcat+Memcached 实现集群部署时Session共享

一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Session在服务端保存用户信息,如果浏览器不支持Cookie或者用户把Cookie禁掉了,Cookie就用不了,还有不同的浏览器采用不用方式保存Cookie,所以我们采用Session服务端来保存,上一节我们有介绍了Tomcat集群部署,怎么样集群的Tomcat对同个用户请求的都能获取保存在Session的用户信息,采用了Memcached管理Session,Memcached 是一

Nginx+Tomcat+Memcached集群Session共享

提供给大家整合实例: http://download.csdn.net/detail/zld1987/9577962 cookie是怎样工作的? 例如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是"Michael Jordan",同时还对所创建的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path