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

[经验分享] Memcached + MSM 实现Tomcat Session保持

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-25 09:59:07 | 显示全部楼层 |阅读模式
Memcached + MSM 实现Tomcat Session保持

tomcat memcached

大纲
  • 前言
  • Memcached介绍
  • MSM介绍
  • 实验拓扑
  • 实验环境
  • 实验步骤

    • 安装配置Tomcat
    • 安装配置Nginx负载均衡
    • 安装配置Memcached + MSM

  • 总结

前言
上篇文章我们实现了session sticky和session cluster实现用户session的保持, 这篇文章主要介绍使用Memcached + MSM来实现用户session的保持
Memcached介绍
Memcached是一款免费、开源、分布式的内存对象缓存系统, 用于减少数据库的负载, 加快web应用程序的访问. Memcached简单并且强大, 其简单的设计加快了部署, 易于开发, 缓存解决了面临的大量数据时很多的问题
官方站点: http://memcached.org/
MSM介绍
MSM(memcached session manager), MSM是一款实现Tomcat会话保持的管理组件, 支持粘性和无粘性的配置, 目前可以在Tomcat6,7,8中使用, 并且支持Memcached会话故障转移
实验拓扑
1461318379457724.png
实验环境
由于我们虚拟机数量不够, 所以Memcached和Tomcat运行在同一节点

[td]
主机IP功用
node1.anyisalin.com172.16.1.2Nginx
node2.anyisalin.com172.16.1.3TomcatA,Memcached Node
node3.anyisalin.com172.16.1.4TomcatB,Memcached Node

实验步骤安装配置Tomcat
[size=1em]我们首先配置Tomcat, 安装过程这里不做叙述, 不明白的可以看我上篇博客: tomcat基础进阶
安装Tomcat,node2,3都要操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@node1 ~]# [iyunv@node1 ~]# wget http://mirrors.cnnic.cn/apache/t ... omcat-8.0.33.tar.gz
[iyunv@node1 ~]# tar xf apache-tomcat-8.0.33.tar.gz  -C /usr/local/
[iyunv@node1 ~]# cd /usr/local ; ln -sv apache-tomcat-8.0.33 tomcat ; cd ~
[iyunv@node1 ~]# wget http://download.oracle.com/otn-p ... -8u77-linux-x64.rpm #如果下载出错, 使用浏览器下载
[iyunv@node1 ~]# rpm -ivh jdk-8u77-linux-x64.rpm   #安装JDK

[iyunv@node1 ~]# vim /etc/profile.d/java.sh     #定义JAVA_HOME
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH

[iyunv@node1 ~]# vim /etc/profile.d/tomcat.sh    #配置tomcat的环境变量
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH

[iyunv@node1 ~]# source /etc/profile.d/tomcat.sh
[iyunv@node1 ~]# source /etc/profile.d/java.sh




配置虚拟主机
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[iyunv@node2 ~]# vim /usr/local/tomcat/conf/server.xml   

#设置默认虚拟主机为web1.anyisalin.com #node3的jvmRoute设置为TomcatB
  


#添加虚拟主机

   
     <valve classname="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
        prefix="web1_access_log." suffix=".txt"
        pattern="%h %l %u %t "%r" %s %b" />


[iyunv@node2 ~]# mkdir -PV /data/webapps/{WEB-INF,META-INF,classes,lib}  #创建目录




node2创建网页文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@node2 ~]# cd /data/webapps/

[iyunv@node2 ~]# vim index.jsp  #创建网页文件
<%@ page language="java" %>

  TomcatA
  
    TomcatA.magedu.com
   


    <% session.setAttribute("magedu.com","magedu.com"); %>






Session ID<%= session.getId() %>
Created on<%= session.getCreationTime() %>

  


[iyunv@node2 webapps]# catalina.sh start #启动tomcat




node3创建网页文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@node3 ~]# cd /data/webapps/

[iyunv@node3 ~]# vim index.jsp  #创建网页文件
<%@ page language="java" %>

  TomcatB
  
    TomcatB.magedu.com
   


    <% session.setAttribute("magedu.com","magedu.com"); %>






Session ID<%= session.getId() %>
Created on<%= session.getCreationTime() %>

  


[iyunv@node3 webapps]# catalina.sh start #启动tomcat




访问测试
1461318397282844.png
1461318401708521.png

安装配置Nginx负载均衡
安装nginx
1
2
在node1上安装配置
[iyunv@node1 ~]# yum install nginx -y  #确保有epel源



配置nginx
1
2
3
4
5
6
7
8
9
10
11
[iyunv@node1 ~]# vim /etc/nginx/conf.d/default.conf  #修改以下字段
    upstream tmcat_server {
        server 172.16.1.3:8080;
        server 172.16.1.4:8080;
    }

    location / {
        proxy_pass http://tmcat_server;
    }

[iyunv@node1 ~]# service nginx start  #启动nginx




测试负载均衡效果

1461318414265228.gif


安装配置Memcached + MSM
下面所有操作在node2,node3都需要执行
安装Memcached
1
2
[iyunv@node2 ~]# yum install memcached -y     #在node2上安装memcached
[iyunv@node3 ~]# yum install memcached -y     #在node3上安装memcached



下载MSM的类库文件到/usr/local/tomcat/lib 下载地址
1
2
3
4
[iyunv@node2 ~]# cd /usr/local/tomcat/lib/        

##我这里本地已经有这些文件了
[iyunv@node2 ~]# mv javolution-5.5.1.jar memcached-session-manager-tc7-1.8.2.jar memcached-session-manager-1.8.2.jar spymemcached-2.10.2.jar msm-javolution-serializer-1.8.2.jar /usr/local/tomcat/lib/



编辑tomcat配置文件
1
2
3
4
5
6
7
在下的 中添加下面这些字段
<manager classname="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="n1:172.16.1.3:11211,n2:172.16.2.4:11211"
      failoverNodes="n2"
      requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
       transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>




启动Memcached重启Tomcat并验证
1
2
3
4
5
6
7
[iyunv@node2 ~]# service memcached start
[iyunv@node2 ]# catalina.sh stop
[iyunv@node2 ]# catalina.sh start

[iyunv@node3 ~]# service memcached start
[iyunv@node3 ]# catalina.sh stop
[iyunv@node3 ]# catalina.sh start




测试
看!我们通过MSM实现了session的绑定
1461318414214894.gif


运维网声明 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-208561-1-1.html 上篇帖子: memcached安装部署及启动错误排查 下篇帖子: 分布式缓存memcached
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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