tomcat8.0.33 msm session共享

1.准备jar包,是最麻烦的一步,我选择kryo的序列化方案,javolution序列化死活弄不通,总是报错.google上又说是bug,不支持,启动就是报错
-rw-r--r-- 1 tomcat tomcat    3085 3月  25 2014 minlog-1.2.jar
-rw-r--r-- 1 tomcat tomcat  147019 3月   9 2015 memcached-session-manager-1.8.2.jar
-rw-r--r-- 1 tomcat tomcat   29329 3月   9 2015 msm-kryo-serializer-1.8.2.jar
-rw-r--r-- 1 tomcat tomcat   62112 3月   9 2015 kryo-serializers-0.11.jar
-rw-r--r-- 1 tomcat tomcat   43398 3月   9 2015 asm-3.2.jar
-rw-r--r-- 1 tomcat tomcat   94830 3月   9 2015 kryo-1.04.jar
-rw-r--r-- 1 tomcat tomcat   11615 3月   9 2015 reflectasm-1.01.jar
-rw-r--r-- 1 tomcat tomcat  459447 3月   9 2015 spymemcached-2.11.1.jar
-rw-r--r-- 1 tomcat tomcat   10407 6月   6 19:41 memcached-session-manager-tc8-1.8.2.jar
2.弄两个tomcat实例,server.xml配置
<Host name="localhost"  appBase="webapps" unpackWARs="false" autoDeploy="false">
        <Context path="" docBase="/opt/apps/8181/" reloadable="false" />
cat /opt/apps/8181/index.jsp
<%@ page language="java" %>
<html>
  <head><title>TomcatA</title></head>
  <body>
    <h1><font color="red">TomcatA.magedu.com</font></h1>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
    <% session.setAttribute("magedu.com","magedu.com"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>
另外一个8282就行
3.编译memcached
libevent-2.0.22-stable  memcached-1.4.24
vim /etc/init.d/memcached  从别人博客找到的
#!/bin/bash
#
# Init file for memcached
#
# chkconfig: - 86 14
# description: Distributed memory caching daemon
#
# processname: memcached
# config: /etc/sysconfig/memcached
  
. /etc/rc.d/init.d/functions
  
## Default variables
PORT="11211"
USER="nobody"
MAXCONN="1024"
CACHESIZE="256"
RETVAL=0
prog="/usr/local/memcached/bin/memcached"
desc="Distributed memory caching"
lockfile="/var/lock/subsys/memcached"
  
start() {
        echo -n $"Starting $desc (memcached): "
        daemon $prog -d -p $PORT -u $USER -c $MAXCONN -m $CACHESIZE 
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success && touch $lockfile || failure
        echo
        return $RETVAL
}
  
stop() {
        echo -n $"Shutting down $desc (memcached): "
        killproc $prog
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success && rm -f $lockfile || failure
        echo
        return $RETVAL
}
restart() {
        stop
        start
}
  
reload() {
        echo -n $"Reloading $desc ($prog): "
        killproc $prog -HUP
        RETVAL=$?
        [ $RETVAL -eq 0 ] && success || failure
        echo
        return $RETVAL
}
  
case "$1" in
  start)
        start
        ;;
 
stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        [ -e $lockfile ] && restart
        RETVAL=$?
        ;;       
  reload)
        reload
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
   *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        RETVAL=1
esac
  
exit $RETVAL
########################
chkconfig --add memcached
chkconfig memcached on
service memcached start
cp -r /etc/init.d/memcached /etc/init.d/memcached2
改端口,再起一个
4.context配置
tomcat a的配置
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   memcachedNodes="n1:172.1.1.212:11211,n2:172.1.1.212:11212"
     failoverNodes="n2"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
 />
tomcat b的配置
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   memcachedNodes="n1:172.1.1.212:11211,n2:172.1.1.212:11212"
     failoverNodes="n1"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
 />
5.启动报这个信息就是正确的
信息: --------
-  finished initialization:
- sticky: true
- operation timeout: 1000
- node ids: [n1]
- failover node ids: [n2]
- storage key prefix: null
--------
6.前段用nginx还是apache,自己喜欢那个用那个
7.测试,http://ip,你会看到 session id是不变的。
时间: 2024-11-05 22:18:37

tomcat8.0.33 msm session共享的相关文章

Centos6.5系统搭建tomcat7.0.57通过msm实现session共享

一般实现session共享,最常用的一种方法就是通过memcached-session-manager.下边我就说一下,怎么通过memcached-session-manager实现session共享. 首先建一个放软件的目录,进入此目录. [[email protected] ~]# mkdir -p /taokey/tools [[email protected] ~]# cd /taokey/tools/ 2.把下载好的apache-tomcat-7.0.57.tar.gz和jdk-7u7

Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现

对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式: 一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据: 另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据. Tomcat集群session同步方案有以下几种方式: 1)使用tomcat自带的

MSM实现tomcat集群中session共享的高可用

目录 1.测试环境概述 2.MSM简介 2.1.MSM的特性 2.2.MSM要解决的问题 2.3.MSM的工作原理 3.环境搭建 3.1.memcached安装 3.2.jkd与tomcat安装配置 3.3.MSM sticky session + kryo模式的配置 3.4.MSM no-sticky session + kryo模式的配置 4.思考与总结 1.测试环境概述 采用两台linux x64主机,主机上分别安装memcached与tomcat,memcached提供key/value

nginx+tomcat8+memcached实现session共享具体操作

本次试验用到的软件包的版本如下: 一.针对10.43.2.134的操作 1.安装jdk环境 tar zxf jdk-8u5-linux-x64.tar.gz mkdir /usr/java mv jdk1.8.0_05/ /usr/java/ 编辑/etc/profile 在文档的末尾追加如下5行内容: JAVA_HOME=/usr/java/jdk1.8.0_05 JRE_HOME=/usr/java/jdk1.8.0_05/jre PATH=$PATH:$JAVA_HOME/bin:$JRE

Tomcat基于MSM+Memcached实现Session共享

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

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:/

tomcat8的session共享实现方案

tomcat8的session共享实现 下载tomcat 版本:apache-tomcat-8.0.53.zip 实现步骤,只需要两步 两个tomcat的server.xml都增加一样cluster配置 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> <Manager className="org.apache

基于tomcat 7.0.68 的websocket 实现,及通过 HttpSessionId 实现websocket session 共享

0.先把页面调用代码贴出来好了 var historyWebsocket = null; // var websocketOnline = null; //判断当前浏览器是否支持WebSocket <% Properties props = PropUtils.getProps(); String url=props.getProperty("webSocketIp"); %> if('WebSocket' in window){ historyWebsocket = ne

Nginx + tomcat + Memcached(session共享)

Nginx + tomcat + Memcached(session共享) 实验拓扑 nginx   实现负载 tomcat   实现web功能 memcached 实现会话共享 安装Nginx [[email protected] ~]# yum -y install pcre pcre-devel [[email protected] ~]# tar -zxvf nginx-1.0.5.tar.gz [[email protected] ~]# cd nginx-1.0.5 [[email