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 09:42
下一篇 2017-05-25 13:18

相关推荐

  • 管道:管道符;cat和more命令 重定向:文件标识符:I/O重定向符号及其用法;exec命令;代码块重定向 命令行处理:命令行处理流程;eval命令 管道: 管道是Linux编程中最常用的技术之一,Shell编程中竖杠符号:“|” command1 | command2 | command3 | … |commandn command1到commandn表…

    Linux干货 2016-08-05
  • sed工具实践解析

    此次博文介绍一下文本处理三剑客中的sed工具(点击查看grep工具http://www.178linux.com/83512) 介绍sed: sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 运行过程: sed编辑器逐行处理文件,并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理…

    Linux干货 2017-08-26
  • Linux包管理:rpm/yum/编译安装

    rpm:安装,查询,升级,校验,卸载   Topic: 程序包 rpm管理 yum管理   程序包:   什么是程序包管理器: 将编译好的应用程序的各个组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作   程序包的组成清单: 文件清单 安装或卸载时运行的脚本 数据库(公共) …

    2017-09-14
  • CentOS7下的网络配置管理

    一、让配置永久有效的办法:修改配置文件 与网卡相关(课配置网卡的IP,掩码,网关,DNS)     /etc/sysconfig/network-scripts/ifcfg-INTERFACE 字段解释: TYPE        &nbsp…

    Linux干货 2016-03-28
  • N22期-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost jimmy]# cp -r /etc/skel/ /home/tuser1 [root@localhost jimmy]#&nbsp…

    Linux干货 2016-08-30
  • 磁盘和文件系统管理述

        我们知道一块磁盘是可以被分区成多个分区的(partition),以Windows的观点来看,你可能会有一颗磁盘并且将他分区成为C:, D:, E:盘,那个C, D,E就是分区。Linux的设备都是以文件的型态存在,磁盘设备接口的不同也早就了磁盘文件名的不同。即IDE接口的磁盘设备文件名都是/dev/hd[a-z…

    Linux干货 2016-08-29