Session共享之Memcached部署

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保持不变。
至此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值