使用memcached实现tomcat集群session共享
环境centos6.7,下载安装必要的软件:yum -y install epel-release(tomcat7在此源上,tomcat7是现在主流版本)
yum -y install tomcat 直接下载tomcat7, yum -y install java-1.7.0-openjdk-devel (tomcat需要运行在java虚拟机上)
vim /etc/tomcat/server.xml 修改配置文件
<Host name="web.com" appBase="/data/webapps/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/webapps" reloadable="true" >
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.238.250:11211,n2:192.168.238.251:11211"
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>
</Context>
</Host>
上面的字自己都看不清还是贴个图吧

自定义了一台虚拟主机:<Host name="web.com" appBase="/data/webapps/" unpackWARs="true" autoDeploy="true">
在此虚拟主机上添加了Context:<Context path="" docBase="/data/webapps" reloadable="true" >
关键是manager这段:
为manager取个全局唯一名字:<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
定义有哪些memcached服务器节点:memcachedNodes="n1:192.168.238.250:11211,n2:192.168.238.251:11211"
定义备用节点:failoverNodes="n2"
对那些请求url忽略:requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
固定格式:transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>
把默认虚拟主机定义为web.com:

JvmRoute="TomcatA" 是在请求web.com的session id中添加JvmRoute="TomcatA",此实验中可不用添加
创建页面资源:mkdir -p /data/webapps/{WEB-INF,classes,lib} cd /data/webapps/ vim index.jsp
jsp页面资源如下
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA.test</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("test","test"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
贴个图:

下载如下几个包:javolution-5.5.1 memcached-session-manager-1.8.2 memcached-session-manager-tc7-1.8.2
msm-javolution-serializer-1.8.2 spymemcached-2.10.2 这几个包作用:java通过memcached实现session管理
上面这几个包的下载地址:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
把上面几个包放在/usr/share/tomcat/lib/ 目录下 (注意上面几个包不要下错了,这又是个潜在的坑)

这几个包的版本一定要对,我在这踩了一天的坑,如果你的是tomcat8,对应的memcached-session-manager-tc8-1.8.2
两台memcached各自放在两台tomcat上,使用yum -y install memcached下载就行了
把上面的步骤在tomcatA上的步骤,在tomcatB上执行一遍,tomcatB上的jsp页面资源中的TomcatA改为TomcatB,red改为blue
前端再架设一台Nginx实现负载均衡,启动memcached,启动tomcat,启动Nginx,去浏览器验证


验证成功,Session ID保持一样
使用memcached实现tomcat集群session共享的更多相关文章
- 基于Memcached的tomcat集群session共享所用的jar
多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/context.xml添加<Manager className="de.javakaffee.w ...
- 基于Memcached的tomcat集群session共享所用的jar及多个tomcat各种序列化策略配置
原文:http://www.cnblogs.com/interdrp/p/4096466.html 多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/contex ...
- Nginx+Tomcat集群+session共享
Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...
- Shiro+Redis实现tomcat集群session共享
一.背景 当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧 ...
- JEECG & JEESite Tomcat集群 Session共享
多台tomcat服务的session共享 memcached与redis - JEECG开源社区 - CSDN博客https://blog.csdn.net/zhangdaiscott/article ...
- tomcat集群session共享
Tomcat集群配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,对我这样的人来说很难懂 . 下面根据说下怎么配置 ...
- 160513、nginx+tomcat集群+session共享(linux)
第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...
- redis实现tomcat集群session共享
1.部署两个tomcat节点,使用nginx实现集群(见http://www.cnblogs.com/zhangzhi0556/articles/nginx.html): 2.redis安装(见h ...
- 160512、nginx+多个tomcat集群+session共享(windows版)
第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start ng ...
随机推荐
- ELK stack elasticsearch/logstash/kibana 关系和介绍
ELK stack elasticsearch 后续简称ES logstack 简称LS kibana 简称K 日志分析利器 elasticsearch 是索引集群系统 logstash 是日志归集集 ...
- 算法库:blas, lapack, cblas, clapack, armadillo, openblas, mkl关系
关于blas的介绍介绍见:http://www.cnblogs.com/dzyBK/p/4983953.html blas:提供向量和矩阵的基本运算,用fortran编写. lapack:提供向量和矩 ...
- Jquery 对象转json ,Json转对象。兼容浏览器。
引入jquery 转json库 [ 文件大小为2.2K] <script type="text/javascript" src="https://jquery-js ...
- 读写ZIP文件
String zipFile = /D:/+ ".zip"; StringOperator.zip(filePath, zipFile); InputStream is = ...
- python修改excel文件
一.导入模块如图
- 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(四)
前面介绍了如何使用RF中的Selenium2Library包进行selenium测试,由于本人不做app测试,所以appnium的测试找机会再试一下,先做一下用requests来做接口测试, 这里推荐 ...
- HTML DOM(学习笔记一)
嗯,工作也有一段时间了,对编程的认识也深入了一些,以前认为HTML/CSS/JAVASCRIPT是比较简单的,看网上的教程就可以了,W3C是我学习这些知识常去的一个网站,非常感谢她让我学习到了更多的一 ...
- NOI2002 银河英雄传说
P1196 银河英雄传说 367通过 1.1K提交 题目提供者该用户不存在 标签并查集NOI系列2001(或之前) 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 莱因哈特什么鬼? 私人代码 ...
- ios assetlibrary
公司做个app项目,用phonegap做,好调页面,哎,就是骗那些土大款客户,觉得phonegap性能一般吧,不过html5的确好强大,页面设计好了看起来也好看.原生的用的不多,比如什么二维码扫描啊, ...
- 开源项目:X265
1 Windows下编译X265 具体的编译环境: Windows 7(64bit) + Visual Stdio 2010 + Cmake 3.4.3 + vsyasm-1.3.0-win64 a. ...