您的位置:首页 > 数据库 > Memcache

Session共享之Memcached部署

2016-03-20 13:44 393 查看

Session共享之Memcached部署

Memcached是一个高校分布式内存缓存系统,主要用于减轻DB负载。它通过在内存中缓存数据和对象来显著减少读取数据库的次数。
特点:高性能、客户分布式、非持久,基于以上特点,非常适合Session缓存(?存储)


部署环境

系统:CentOS6.5.x86_64

环境:Nginx1.9.12+Tomcat7.0.68+Memcached1.4.25

路径 /usr/local/work/

Tomcat7+Nginx 配置

部署两台Tomcat7+Nginx,端口分别为8080,8081

cp apache-tomcat-7.0.68.tar.gz /usr/local/work/
cd /usr/local/work/
tar -zxvf apache-tomcat-7.0.68.tar.gz
cp apache-tomcat-7.0.68 tomcat-session-test1
cp apache-tomcat-7.0.68 tomcat-session-test2
rm -rf apache-tomcat-7.0.68
------------------------------
cp nginx-1.9.12 /usr/local/work/
cd /usr/local/work/
tar -zxvf nginx-1.9.12.tar.gz
cd nginx-1.9.12
./configure --prefix=/usr/local/nginx
==============
缺少相应Lib时,通过yum安装对应lib库
==============
make && make install


启动Nginx前修改配置文件conf/nginx.conf

http{
upstream site{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}

server{
listen 80;
server_name www.xxxx.com;
location /{
root html;
index index.html index.htm;
proxy_pass http://site; 
}

}


启动Tomcat-session-test1前,修改配置文件conf/server.xml,配置端口为8080(默认),在webapps/ROOT目录放入index.jsp

<%@page contentType="text/html;charset=utf-8"%>
Tomcat session test1!<%=session.getId()%>


启动Tomcat-session-test2前,修改配置文件conf/server.xml,配置端口为8081,在webapps/ROOT目录放入index.jsp

<%@page contentType="text/html;charset=utf-8"%>
Tomcat session test2!<%=session.getId()%>


分别启动Nginx,tomcat-session-test1,tomcat-session-test2;

本地设置Host:192.168.56.101 www.xxxx.com

访问 www.xxxx.com ,多次刷新可以看见Nginx反向代理了两台Tomcat并且页面上的内容不一致,且session不一致。

Memcached +Tomcat7配置

cp memcached-1.4.25.tar.gz /usr/local/work/
cd /usr/local/work/
tar -zxvf memcached-1.4.25.tar.gz
cd memcached-1.4.25
./configure --with-libevent=/usr
make && make install
/usr/local/bin/memcached -d -m 1024 -u root -p 12000 -P /tmp/memcached.pid


下载以下jar包:

memcached-session-manager-1.9.2.jar
memcached-session-manager-tc7-1.9.2.jar
kryo-1.04.jar
kryo-serializers-0.9.jar
asm-3.3.1.jar
msm-kryo-serializer-1.9.2.jar
reflectasm-1.01.jar
spymemcached-2.8.4.jar
minlog-1.2.jar


放到每个Tomcat的Lib库下

修改Tomcat-session-test1,Tomcat-session-test2配置 conf/context.xml

<context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:12000"
sticky="false"
sessionBackupAsync="false"
lockingMode="auto"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
/>
</context>


重启Tomcat-session-test1,Tomcat-session-test2,刷新www.xxxx.com后可以看见服务器名称变化,session保持不变。

至此结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息