环境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共享的更多相关文章

  1. 基于Memcached的tomcat集群session共享所用的jar

    多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/context.xml添加<Manager className="de.javakaffee.w ...

  2. 基于Memcached的tomcat集群session共享所用的jar及多个tomcat各种序列化策略配置

    原文:http://www.cnblogs.com/interdrp/p/4096466.html 多个tomcat各种序列化策略配置如下:一.java默认序列化tomcat配置conf/contex ...

  3. Nginx+Tomcat集群+session共享

    Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...

  4. Shiro+Redis实现tomcat集群session共享

      一.背景 当我们使用了nginx做项目集群以后,就会出现一个很严重的问题亟待解决,那就是:tomcat集群之间如何实现session共享的问题,如果这个问题不解决,就会出现登陆过后再次请求资源依旧 ...

  5. JEECG & JEESite Tomcat集群 Session共享

    多台tomcat服务的session共享 memcached与redis - JEECG开源社区 - CSDN博客https://blog.csdn.net/zhangdaiscott/article ...

  6. tomcat集群session共享

    Tomcat集群配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,对我这样的人来说很难懂   .   下面根据说下怎么配置 ...

  7. 160513、nginx+tomcat集群+session共享(linux)

    第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...

  8. redis实现tomcat集群session共享

    1.部署两个tomcat节点,使用nginx实现集群(见http://www.cnblogs.com/zhangzhi0556/articles/nginx.html):   2.redis安装(见h ...

  9. 160512、nginx+多个tomcat集群+session共享(windows版)

    第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start ng ...

随机推荐

  1. IOS学习之路- 运行过程

    1. 执行Main函数(在main.m文件中) 2. 加载MainStoryborad.storyboard文件 * 创建ViewController文件 * 根据storyboard文件中描述创建V ...

  2. java左移右移运算符

    http://blog.csdn.net/dandanteng/article/details/7433531 首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数 ...

  3. Spring定时任务配置

    可参照http://gong1208.iteye.com/blog/1773177 的详细配置 <!-- 系统定时任务工厂类 --> <bean id="systemDes ...

  4. 11-UIView与核心动画对比

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  5. fw:学好Python必读的几篇文章

    学好Python必读的几篇文章 from:http://blog.csdn.net/hzxhan/article/details/8555602 分类: python2013-01-30 11:52  ...

  6. 编写javascript、Jquery的String.format();

    在javascript.Jquery里面好像是没有String.format();这个函数的,所以我们在拼接字符串的时候就特别的辛苦,生怕又打错,而且又乱,所以就自己去写一个函数来代替. String ...

  7. CS中调用微软自带com组件实现音频视频播放(wf/wpf)

    1.mp3播放器:工具箱中右键,在弹出的菜单中选择“选择项”,添加“com组件”,选择名称“windows Media Player",点击确定就会在工具箱新增一个“windows Medi ...

  8. Drupal常用开发工具(一)——Devel模块

    进行 Drupal 开发时有许多模块和工具可供使用,其中最常用的两项便是 Devel 及 Drupal for Firebug.本文和<Drupal常用开发工具(二)——Drupal for F ...

  9. port-channel和channel-group

    cisco交换机上的链路聚合 2层 ethernet channel (interface)#channel-group number mode {on | auto [no-silent]|desi ...

  10. Error querying database. Cause: java.sql.SQLException: ORA-01745: 无效的主机/绑定变量名

    今天调试程序是遇到了,下面的一个问题.我将对应的SQL语句拿到Toad下也能正常的执行,感觉有点莫名其妙,根据异常信息的提示查看对应的映射结果集也没发现错误,然后百度了一下,也有许多朋友也遇到过这样的 ...