使用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 ...
随机推荐
- Linux(Ubuntu)下MySQL的安装与配置
转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...
- Js 时间与字符串转示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- POJ 2104 【主席树】【区间第K大】
#include<stdio.h> #include<algorithm> #include<string.h> #define MAXN 100010 #defi ...
- NYOJ 123 士兵杀敌4-树状数组的插线求点
士兵杀敌(四) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编 ...
- java static 方法使用笔记
有入参的static方法,可以正常使用 static的作用是申明:这是类的静态方法,什么时候都可以调用,可以传入入参,也可以不传. 上代码: 1.带静态方法的类: public class MakeP ...
- Grid Infrastructure Single Client Access Name (SCAN) Explained (文档 ID 887522.1)
APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.1 and laterExalogic Elastic Cloud ...
- [转]iOS技巧之获取本机通讯录中的内容,解析通讯录源代码
一.在工程中添加AddressBook.framework和AddressBookUI.framework 二.获取通讯录 1.在infterface中定义数组并在init方法中初始化 ? 1 2 3 ...
- bochs安装一系列问题
http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html ...
- selenium借助AutoIt识别上传文件Java篇
官方网站:https://www.autoitscript.com/site/ 从网站上下载AutoIt并安装,安装完成在菜单中会看到图4.13的目录: 图4.13 AutoIt菜单 1.首先打开A ...
- Ceph–s ceph 集群状态
[root@ceph-mon1 ~]# ceph -s cluster 03f3afd4-4cc6-4083-a34c-845446a59cd4 health HEALTH_OK monmap e1: ...