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,使用不同组件需要的jar包是不同的。所需jar包如图所示:

如果使用maven的话,这些jar包可以这样得到:

本例中,由于使用msm-javolution-serializer作为序列化Session的组件,所以只需要前5个jar包。

将这5个jar包拷贝的两个tomcat的lib目录中,如下图:

为了将Session序列化到Memcache中,需要改变Tomcat的默认的StandardManager

在$CATALINA_HOME/conf/context.xml文件的Context元素中增加如下配置:

如果用msm-kryo-serializer组件的话,这里的transcoderFactoryClass的值应该是

de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory

同时,为了能够在Tomcat控制台($CATALINA_HOME/logs/catalina.out)看到Memcached-Session-Manager输出的日志,我们在$CATALINA_HOME/conf/logging.properties文件的最后增加如下配置:

server.xml文件不需要做更改

既然要将Session保存到Memcache中,Memcache是必不可少的,这里就不做介绍。启动两个memcached

memcached -d -p 11211 -u root

memcached -d -p 11212 -u root

同时,为了负载均衡需要启动nginx

service nginx start

最后,分别启动两个Tomcat

激动人心的时刻到了,让我们看看tomcat的启动日志

接下来,还是用我们以前的test为例来看看是不是能够实现负载均衡+Session共享

答案是肯定的,结果是之前用Session复制的效果是一样的

最后,来看看控制台

成功!

参考:

http://my.oschina.net/smallsun512/blog/164107

http://www.tuicool.com/articles/VZz6bm
http://chenzhou123520.iteye.com/blog/1650212

http://www.iteye.com/topic/1125301

http://blog.chinaunix.net/uid-26719405-id-4683071.html

时间: 2024-07-31 17:26:16

Tomcat+Memcached实现Session共享的相关文章

【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篇之结合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共享集群

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

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

Tomcat基于MSM+Memcached实现Session共享

前言 在Tomcat集群中,当一个节点出现故障,其他节点该如何接管故障节点的Session信息呢?本文带来的解决方案是基于MSM+Memcached实现Session共享. 相关介绍 MSM MSM--Memcached Session Manager是一个高可用的Tomcat Session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用Memcached存取Session,以实现高可用. 工作原理 Sticky Session(黏性) 模式

nginx+memcached+tomcat集群 session共享完整版

nginx+memcached+tomcat集群 session共享完整版 集群环境 1.nginx版本 nginx-1.6.2.tar.gz 2.jdk 版本 jdk-7u21-linux-x64.tar.gz 3.tomcat 版本  7.0.29 4.memcached 版本 memcached-1.4.22.tar.gz 5. CentOS 6.5 系统采用一台服务做测试 一.nginx安装 安装依赖包 yum -y install gcc gcc-c++ 1.安装pcre库 tar z

windows下nginx+tomcat+memcache负载均衡tomcat集群session共享搭建

使用nginx 做负载均衡 memcached处理session共享  环境 windows 7  X64  java : jdk-7windows-x64.rar  nginx : http://nginx.org/en/download.html ,这里我们推荐下载稳定版(stable versions),本文采用nginx-1.8.0  tomcat:apache-tomcat-7.0.63 在同一台电脑上配置多个tomcat(本次采用两个tomcat来示范),修改 conf/server

nginx+tomcat8+memcached实现session 共享

操作环境: iP地址 角色 安装软件 10.43.2.135 nginx方向代理 memcached服务器 nginx   memcached 10.43.2.134 tomcat服务器 2个tomcat(端口分别为8080 8081) 实验中使用的软件如下: 实现思路: 第一步:针对10.43.2.134的操作 1.在10.43.2.134上安装2个tomcat 2.在$CATALINA/webapps/ROOT/下建立测试页面t.jsp 3.分别启动2个tomcat服务 4.打开http:/