设为首页 收藏本站
查看: 1505|回复: 0

[经验分享] memcached服务搭建及session共享

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-25 13:42:17 | 显示全部楼层 |阅读模式
memcached+session共享

目标:客户端通过nginx代理访问tomcat服务器,两台tomcat服务器共用memcached服务器,访问的sessionid存放在memcached服务器中,一台做主服务器,一台做备用服务器,当主服务器宕机,启用备用备用服务器
环境准备:
nginx服务器:192.168.1.1
两台基于tomcat的服务器:192.168.1.2  192.168.1.3
两台memcached服务器:192.168.1.4  192.168.1.5
安装gcc*开发环境

1.配置memcached服务(另一台做相同的配置)
首先安装依赖库
下载libevent-2.0版本的和memcached-1.4版本的
[iyunv@www memceached-package]# tar -zxf libevent-2.0.15-stable.tar.gz
[iyunv@www memceached-package]# cd libevent-2.0.15-stable
[iyunv@www libevent-2.0.15-stable]# ./configure && make && make install
安装memcached源码包
[iyunv@www memceached-package]# tar -zxf memcached-1.4.5.tar.gz
[iyunv@www memceached-package]# cd memcached-1.4.5
[iyunv@www memcached-1.4.5]# ./configure && make && make install
由于依赖包安装的路径不能被系统读取到,所以写一个配置文件让系统能够识别安装的路径
[iyunv@www memcached-1.4.5]# vim /etc/ld.so.conf.d/libevent.conf
/usr/local/lib/
重新加载配置文件
[iyunv@www memcached-1.4.5]# ldconfig /etc/ld.so.conf.d/libevent.conf
查看memcached帮助
[iyunv@www memcached-1.4.5]# /usr/local/bin/memcached -h
启动服务
[iyunv@www memcached-1.4.5]# /usr/local/bin/memcached -u root -m 100M -n 10 -f 2 -d -vvv
查看端口号是否启动成功
[iyunv@www memcached-1.4.5]# netstat -anput | grep 11211
本机测试能否存取
[iyunv@www memcached-1.4.5]# telnet 192.168.1.4 11211
Trying 192.168.1.4...
Connected to 192.168.1.4 (192.168.1.4).
Escape character is '^]'.
set name 0 180 3 //将key(name) value(jim)存入
jim
STORED
get name  // 取出name的值
VALUE name 0 3
jim
END
quit
Connection closed by foreign host.
服务能实现正常的存取功能,结束!

2.配置tomcat服务器(另一个做相同的配置,jsp改变一下以示区别)

下载 jdk-6u27-linux-i586.bin   apache-tomcat-6.0.32.tar.gz   
首先安装JDK
[iyunv@localhost memcached+session-package]# chmod +x jdk-6u27-linux-i586.bin
[iyunv@localhost memcached+session-package]# ./jdk-6u27-linux-i586.bin
[iyunv@localhost memcached+session-package]# cp jdk1.6.0_27/ /usr/local/jdk

导入环境变量
[iyunv@localhost memcached+session-package]# vim /etc/bashrc
文件末尾添加
export   JRE_HOME=/usr/local/jdk
export   JAVA_BIN=/usr/local/jdk/bin
export   PATH=$JRE_HOME/bin:$PATH
export  CLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
export  JRE_HOME  JAVA_BIN  PATH   CLASSPATH

重新加载配置文件
[iyunv@localhost memcached+session-package]# source /etc/bashrc
[iyunv@localhost ~]# java -version
java version "1.6.0_27"

安装tomcat
[iyunv@localhost memcached+session-package]# tar -zxf apache-tomcat-6.0.32.tar.gz
[iyunv@localhost memcached+session-package]# cp apache-tomcat-6.0.32 /usr/local/tomcat
[iyunv@localhost memcached+session-package]# /usr/local/tomcat/bin/startup.sh

查看端口是否启动
[iyunv@localhost memcached+session-package]# netstat -anput | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      18162/java

访问主页
[iyunv@localhost ~]# elinks --dump 192.168.1.2:8080

添加一个jsp的动态网页
[iyunv@localhost ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
<html>
        <body bgcolor="green">
            <center>
                <%=  request.getSession().getId()  %>
                <h1>tomcatA 43</h1>
            </center>
        </body>
</html>
[iyunv@localhost ~]# elinks --dump 192.168.1.2:8080/test.jsp
                     8CD662E4983B212941DEFE18F0907EE4-memA

                                   tomcatB 43
tomcat服务器已经能成功访问!


3.添加tomcat连接memcached的接口

下载以下包
kryo-1.04.jar                        memcached-session-manager-tc6-1.5.1.jar
kryo-serializers-0.9.jar             minlog-1.2.jar
memcached-2.5.jar                    msm-kryo-serializer-1.5.1.jar
memcached-session-manager-1.5.1.jar  reflectasm-1.01.jar

将以上所有包复制到tomcat的库目录中
[iyunv@localhost session]# cp * /usr/local/tomcat/lib/

修改tomcat的配置文件
[iyunv@localhost session]# vim /usr/local/tomcat/conf/context.xml
在<Context>  </Context>添加指明memcached两个主机的IP地址及端口号和备用memcached服务器
<Manager    className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="memA:192.168.1.4:11211 memB:192.168.1.5:11211"
failoverNodes="memB"
requestUrilgnorePattern=".*\(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

重启tomcat使配置生效
[iyunv@localhost session]# /usr/local/tomcat/bin/shutdown.sh
[iyunv@localhost session]# /usr/local/tomcat/bin/startup.sh

4.配置nginx服务器
修改配置文件
[iyunv@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream  "webgroup"  {
             server   192.168.1.2:8080;
             server   192.168.1.3:8080;
      }
    server {
        listen       80;
        server_name  localhost;
        location / {
           # root   html;
           # index  index.html index.htm;
           proxy_pass  http://webgroup;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
重新启动nginx服务
[iyunv@localhost ~]# /usr/local/nginx/sbin/nginx -s stop
[iyunv@localhost ~]# /usr/local/nginx/sbin/nginx

5.客户端测试

浏览器测试
http://192.168.1.1/test.jsp
刷新网页发现sessionid不变,证明memcached已经生效

将主memcached服务器关闭,测试备用服务器
[iyunv@www ~]# ifconfig eth0 | head -2
eth0      Link encap:Ethernet  HWaddr 00:0C:29:FD:5B:B1  
          inet addr:192.168.118.3  Bcast:192.168.118.255  Mask:255.255.255.0
[iyunv@www ~]# netstat -anput | grep 11211
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      7775/memcached      
[iyunv@www ~]# pkill -9 memcached
[iyunv@www ~]# netstat -anput | grep 11211

客户端再测试
http://192.168.1.1/test.jsp
刷新网页发现sessionid不变,证明备用memcached已经生效


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-25412-1-1.html 上篇帖子: memcache分布式缓存 下篇帖子: Ubuntu memcached 的安装和启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表