zoukankan      html  css  js  c++  java
  • 基于Memcached的Nginx服务器集群session共享

    原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7。所有的点击以下链接可下载

    链接:https://pan.baidu.com/s/1jeO3T4ubJiz-G9TtyIOoCQ     提取码:4ckm 

    nginx安装参考上一篇文章:https://www.cnblogs.com/bigdatadiary/p/10951313.html

      1.安装jdk1.8,配置环境变量

      2.解压Tomcat7(两份),分别命名为tomcat0,tomcat1,并修改端口保证两个Tomcat能正常运行

      3.安装memcached(以下简称mem),其1.4版本以下都是以服务安装,可以在系统服务中查看运行状况,安装步骤如下:

        (1):解压mem,得到一个memcached.exe文件

        (2):cmd,进入memcached.exe目录下,执行 memcached.exe -d install,安装成功是没有任何提示的。memcached.exe -d start/stop 分别为mem的服务启动和停止命令,memcached.exe -h 命令查看mem更多命令以及说明,mem使用11211端口,默认换成为512M

        (3):启动mem。

      4.配置Tomcat,将以下代码复制到两个tomcatconfcontext.xml中

    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:localhost:11211"
    sticky="false"
    sessionBackupAsync="false"
    sessionBackupTimeout="1000"
    lockingMode="auto"
    requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />

    *以上配置详解

    memcachedNodes

    必须项

    配置 memcached 节点。格式:<id>:<host>:<port>,多个节点之间,用空格或英文逗号分隔

    sticky

    可选项

    是否粘性。默认为 true。粘性会话需要保证每个用户的请求都路由到同一台 Tomcat 服务器中。否则,需要设置成非粘性会话。

    lockingMode

    可选项

    用于非粘性会话。默认为 none。

    可选值

    描述

    none

    不锁定 session

    all

    每个请求访问 session 的期间,session 一直被锁定,直到请求结束

    auto

    只锁定写请求的 session,只读请求的 session 不会被锁定

    uriPattern:<regexp>

    通过正则表达式的方式来对请求的 URI 进行匹配,匹配上的会被锁定

    sessionBackupAsync

    可选项

    设置 session 会话中的数据是否异步同步到 memcached 中,默认为 true。

    requestUriIgnorePattern

    可选项

    设置忽略会话同步的请求的 URI 地址的正则表达式。这应该包含静态资源的请求。

    failoverNodes

    可选项

    memcached 故障转移节点配置。用于粘性会话,非粘性会话不可用。如:

    failoverNodes="n1",含义是告诉 msm 将 session 会话中的数据存储到 memcached 的 n2 节点中,如果 n2 节点宕掉等致使其不能正常提供服务,msm 才会将 session 会话中的数据存储到 memcached 的 n1 节点中。

    sessionAttributeFilter

    可选项

    配置同步 session 会话数据的属性名称的正则表达式。如果不设置,则将 session 中全部的属性保存到 memcached 中。

    transcoderFactoryClass

    可选项

    配置序列化和反序列化 session 会话中的数据到 memcached 中的编码转换器的工厂类名。

    默认是 de.javakaffee.web.msm.JavaSerializationTranscoderFactory

    backupThreadCount

    可选项

    用于异步存储 session 会话中的数据到 memcached 中的线程数。(当 sessionBackupAsync="true" 时,该配置项有效)

    sessionBackupTimeout

    可选项

    备份 session 会话数据所需时间如果大于该值,将导致 session 会话数据同步失败。默认为 100(单位毫秒)

      (5)将 Mem-Tomcat需要的jar包 放进Tomcat的lib目录下,然后新建一个ROOT文件夹,在里面建一个index.jsp文件,index.jsp文件写入以下代码,保存后点击bin/startup.bat运行tomcat,即可看到session共享成功

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Session test</title>
    </head>
    <body>

    Tomcat 0
    <p>SessionID:<%=session.getId()%></p>
    </body>
    </html>

        

       

      

  • 相关阅读:
    数据库访问表的问题
    UVA 10943全加和(规律)
    POJ 2594 最小路径覆盖 + 传递闭包
    phonegap入门7 capture.captureVideo 录像
    第二部分 Linux Shell高级编程技巧——第二章 Shell工具
    C#写的光模块烧写软件
    关于java的++和操作符,你真的搞明白了吗?
    MFCATL IDispatch调度接口
    c/c++函数调用约定
    HDOJ 2955 Robberies (0/1背包)
  • 原文地址:https://www.cnblogs.com/bigdatadiary/p/10975493.html
Copyright © 2011-2022 走看看