Tomcat基于memcached会话共享

安装两台memcache,基于tomcat做会话同步;(只对动态内容缓存,用于追踪用户会话)

前提:
两个tomcat节点:172.16.100.7(tomcatA.magedu.com),172.16.100.8(tomcatB.magedu.com)
两个memcached节点:172.16.100.9, 172.16.100.10
一个负载均衡节点:172.16.100.6

Tomcat基于memcached会话共享
两台安装完tomcat,再yum安装memcached即可;下面这个memcached项目就是为了tomcat增加一个新的会话管理器:放在tomcat的lib下即可;注意memcached要和你的tomcat版本一致;

memcached-session-manager项目地址:https://github.com/magro/memcached-session-manager

    memcached配置文件:/etc/sysconfig/memcached  建议修改缓存空间大小CACHESIZE,M为单位

教室环境下下载安装包,lftp 172.18.0.1:/pub/Sources/7.x86_64/msm> mget * 其他环境参考上述GitHub网站下载
现在两台tomcat版本都为7,所以删除掉不需要的memcached依赖包:rm -rf memcached-session-manager-tc8-1.8.3.jar
然后将几类包放置到tomcat对应的lib相关目录下:mv *.jar /usr/share/tomcat/lib
随后修改tomcat配置文件,添加在Host上下文中:

分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示(修改对应参数,如docBase路径,n1和n2地址):

<Context path=”/test” docBase=”/usr/share/tomcat/webapps/test” reloadable=”true”>
              <Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”
                memcachedNodes=”n1:172.16.100.9:11211,n2:172.16.100.10:11211″
                failoverNodes=”n1″
                requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”
                transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”
              />
             </Context>


分别为两个context提供测试页面:

tomcatA:
mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
vim /usr/share/tomcat/webapps/test/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>

上述为tomcat1,tomcat2节点和memcached2与上述安装配置基本一致,就/usr/share/tomcat/webapps/test/index.jsp页面信息有些改变:

<%@ page language=”java” %>
<html>
  <head><title>TomcatB</title></head>
  <body>
    <h1><font color=”blue”>TomcatB.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>

最后在172.16.100.6的nginx上配置反向代理的负载均衡内容即可,测试访问:

Tomcat基于memcached会话共享

Tomcat基于memcached会话共享注意会话内容是一致;




原创文章,作者:杜少星,如若转载,请注明出处:http://www.178linux.com/76838

(1)
杜少星杜少星
上一篇 2017-05-25
下一篇 2017-05-25

相关推荐

  • 如何理解云计算中IaaS、PaaS和SaaS?很简单,就像吃货想吃披萨了…

                                                      &nbsp…

    2015-04-17
  • 元数据、修改时间戳、文件名通配、定义命令的别名、I/O重定向及管道

      文件的元数据 文件的数据分为两类:一类为元数据,既属性数据;一种就是数据本身:  数据是指普通文件中的实际数据  元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等 那么如何查看文件的详细信息? stat命令: 功能说明:    显示inode内容命令用法:    stat…

    Linux干货 2016-11-06
  • 压缩和解压缩总结

                      压缩和解压缩的命令很多,今天总结如下: gzip  压缩比1–9  默认是6  压缩比越高  耗费CPU资源也多,文件比较小的话,不建议使用gzip压缩,因为使用gzip越压缩越大。…

    Linux干货 2017-04-17
  • Linux逻辑卷LVM实现

    Linux逻辑卷LVM实现 背景: 在学习Linux中,学习到了逻辑卷LVM,发现LVM是个十分好用的一个技术,可以多个硬盘合并在一起使用,同时还可以动态的增加和减少。在这里将Linux逻辑卷的具体实现记录下来。 介绍: 逻辑卷LVM:Logica Volum Manager,它是Linux环境下对磁盘分区进行管理的一种机制,普通的磁盘分区管理方式在逻辑分区…

    2017-08-12
  • 阿里云修改hostname主机名的一点小技巧

    CentOS 7以后修改主机名一般使用: hostnamectl set-hostname newhostname 如果仍然无效,使用vim打开/etc/cloud/cloud.cfg,将 preserve_hostname=fale 改为 preserve_hostname=true 即可。 以上在阿里云ECS上亲测有效,使用了网上查阅…

    Linux干货 2017-01-09
  • DHCP简介及简单实践

    一、引言 DHCP全称Dynamic Host Configure Protocol,动态主机配置协议,用于向网络中的计算机分配IP地址及一些TCP/IP配置信息。DHCP提供了安全,可靠且简单的TCP/IP网络设置,避免了TCP/IP网络地址的冲突,同时大大降低了工作负担。 二、DHCP工作流程 DHCP采用C/S架构,即Server/Client,它的简…

    Linux干货 2017-01-10