memcached 的 tomcat 集群之 session 共享

基于 memcached 的 tomcat 集群之 session 共享, 实现在多台服务器之间共享 session 会话中的数据。

JAR 包

  • asm-4.0.jar
  • kryo-1.04.jar
  • minlog-1.2.jar
  • reflectasm-1.04.jar
  • kryo-serializers-0.10.jar
  • spymemcached-2.8.12.jar
  • couchbase-client-1.1.4.jar
  • msm-kryo-serializer-1.6.4.jar
  • memcached-session-manager-1.6.4.jar
  • memcached-session-manager-tc7-1.6.4.jar

    配置
    将 JAR 包全部放到$Tomcat/lib目录下($Tomcat 表示Tomcat安装的根目录,以下同)。
    编辑$Tomcat/conf/context.xml 文件,在<context>节点下加入如下配置

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
         memcachedNodes="n1:192.168.1.102:11211,n2:192.168.1.103:11211"
         sticky="false"
         lockingMode="auto"
         sessionBackupAsync= "false"
         sessionBackupTimeout="300"
         requestUriIgnorePattern= ".*\.(png|gif|jpg|ico|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(单位毫秒)
    “`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白正在飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值