基于memcache处理tomcat的session

如果单台tomcat就不存在session的问题,如果是多台就需要考虑session共享的问题,或者nginx配置ip_hash可以解决session的问题,但是ip_hash的弊端是客户只能访问一台机器,那台机挂了就报错了不实用。因此这里我们采用memcache+tomcat+nginx来实现。

案例:

安装memache

yum -y install memcached

systemctl start memcached

安装nginx和tomcat

nginx配置成负载均衡

  1. [root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
  2. .. ..
  3. upstream tomcatgrp {
  4. server 192.168.2.100:8080;
  5. server 192.168.2.200:8080;
  6. }
  7. server {
  8. listen 80;
  9. server_name localhost;
  10. location {
  11.              proxy_pass http://tomcatgrp;
  12. root html;
  13. index index.html index.htm;
  14. }
  15. }

/usr/local/nginx/sbin/nginx -s reload

修改tomcat的配置

  1. [root@svr100 ~]# ~]# vim /usr/local/tomcat/conf/context.xml
  2. <Context>
  3. <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  4.     memcachedNodes="mem1:192.168.2.5:11211"
  5.     requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
  6.     transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>  

    ####固定格式:transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"/>  

  7. </Context>

下载需要的jar包拷贝到/usr/local/tomcat/lib下

下载地址:https://www.mvnjar.com 

  1. asm-5.1.jar minlog-1.3.0.jar
  2. kryo-3.0.3.jar msm-kryo-serializer-1.9.2.jar
  3. kryo-serializers-0.34.jar reflectasm-1.11.1.jar
  4. memcached-session-manager-1.9.2.jar spymemcached-2.11.1.jar
  5. memcached-session-manager-tc8-1.9.2.jar  #要是tomcat7就用 tc7     

    分别在两台机器上添加测试页
    webapp/ROOT/session.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>

  6. 测试http://ip/session.jsp
  7.              


    测试可以先将浏览器缓存清理后进行,也可以反向验证(停掉memcache对比测试)

                                                

转载于:https://www.cnblogs.com/rutor/p/11325522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值