zoukankan      html  css  js  c++  java
  • tomcat结合memcached构建session服务器

    memcached服务器两台:192.168.223.136,192.168.223.137

    tomcat多实例:192.168.233.146:8081,192.168.223.146:8082

    for tomcat configure(这里使用的tomcat8的版本)

    参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration

    Add memcached-session-manager jars to tomcat

    wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.1.1/memcached-session-manager-2.1.1.jar

    wget http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager-tc8/2.1.1/memcached-session-manager-tc8-2.1.1.jar

    wget http://repo1.maven.org/maven2/net/spy/spymemcached/2.11.1/spymemcached-2.11.1.jar

    下载需要的memcached的三个jar文件

    将这三个jar文件复制到$CATALINA_HOME/lib/目录下

    由于采用的多实例

    export CATALINA_HOME=/usr/local/apache-tomcat-8.5.16
    export CATALINA_BASE=/usr/local/tomcat-instance/tomcat1

    如果仅仅只是用java来做序列化器只需要这三个包就ok

    配置tomcat多实例:

    tomcat1的添加配置如下:

    <Context path="" docBase="ROOT" reloadable="true">
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211"       这里的ip就是memcached服务器的两个ip
      failoverNodes="n1"
      requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
        />
    </Context>

    将红色添加的部分放进各应用程序的context组件内

    tomcat2的添加配置和tomcat1一样:

    <Context path="" docBase="ROOT" reloadable="true">
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="n1:192.168.223.136:11211,n2:192.168.223.137:11211"
      failoverNodes="n1"
      requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
         />
    </Context>

    开启各自的tomcat的服务

    接下来配置memcached服务器,这里采用的yum安装:

    yum install memcached -y(两台服务器192.168.223.136,192.168.223.137分别都给装上)

    访问中可以看见session会话保持已经成功,查看memcached缓存信息:

    [root@wadeson ~]# memcached-tool 127.0.0.1
    # Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
    6 304B 553s 1 2 no 0 0 0

    然后只需要配置前端代理到tomcat即可实现负载均衡

    另补充:

    如果需要采用其他的序列进行session保持:

    1、Example for sticky sessions + kryo(需要的包

    <Context>
      ...
      <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
        memcachedNodes="n1:host1.yourdomain.com:11211,n2:host2.yourdomain.com:11211"
        failoverNodes="n1"
        requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
        transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
        />
    </Context>

    2、
    javolution-serializer: msm-javolution-serializerjavolution-5.4.3.

    <Context>
     <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
     memcachedNodes="n1:192.168.1.155:11211,n2:192.168.1.11:11211"
     failoverNodes="n1"
    requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.javolutionTranscoderFactory"    各个序列器就这里做了变化

    />
    </Context>
    3、If you're using Redis, you need the jedis-2.9.0.jar.
    更多详情参考:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
  • 相关阅读:
    编码问题
    apache 2.4 httpd 2.4.6 反向代理后端的服务为HTTPS https 基于centos7
    ucore系统 eclipse-cdt实验环境准备
    openshift v1.5 不能登录system:admin 问题
    filebeat v6.3 如何增加ip 字段
    filebeat v6.3 多行合并的步骤 多个表达式同时匹配
    如何一步步使用国内yum源一键安装openstack-ocata版本基于centos7
    windows 定时删除N天前日志脚本
    logrotate 如何执行日志按照大小切分
    virtualbox 基于nat模式搭建局域网并且和宿主机通信
  • 原文地址:https://www.cnblogs.com/jsonhc/p/7344902.html
Copyright © 2011-2022 走看看