tomcat利用memcache解决session共享

1.说明
主要是利用memcached-session-manager开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对session的共享

2.安装包下载
memcache-session-manager在tomcat6上所需jar包
这是将msm官方的jar打了一个zip包方便下载使用
memcache-session-manager官方下载地址
memcache下载见memcache安装

3.环境描述
系统:centos 5.x
需要的软件:
tomcat-6.0.20
memcache-session-manager-1.4.0

4.安装配置步骤
4.1 安装memcache见memcache安装
4.2 安装tomcat6见linux nginx负载均衡/图片缓存 + tomcat集群/session共享3.5部分
4.3 安装配置msm
将下载的msm-tomcat6-all-dependence.zip解压,将解压出来的jar包拷贝到tomcat6/lib目录下
修改tomcat6/conf/context.xml文件
在</WatchedResource>添加如下配置:

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="n1:localhost:11211"
    requestUriIgnorePattern=".*.(png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
启动tomcat,会发现日志中包含初始化msm的日志,且未出现异常表示插件安装成功
注意:tomcat5,tomcat6, tomcat7的插件包不一样,请详细阅读memcache-session-manager官方wiki,网上看到的一篇配置文章可能是tomcat5的配置,用其方法在tomcat6上配置后session共享不正常.

时间: 2024-10-30 06:41:26

tomcat利用memcache解决session共享的相关文章

tomcat集群memcached解决session共享 之 多个memcached节点之间如何同步session

问题描述 tomcat集群memcached解决session共享 之 多个memcached节点之间如何同步session tomcat集群memcached解决session共享 之 多个memcached节点之间如何同步session 问题简单描述: 多个tomcat集群,并且有多个memcached节点做session共享, 那么如何保证每一个tomcat从不同的memcached节点取session的一致性? 是不是每一个tomcat的session都会自动写入所有的memcached

Nginx+Tomcat7+Memcached实现tomcat集群和session共享问题

问题描述 由于最近项目要升级进行负载均衡,网上看了很多文章,确定还是用Nginx+Tomcat+Memcached实现tomcat集群和session共享这种方式来实现.经过网上一些配置参考Demo版本成功了.session也共享成功.在满心欢喜的情况下,还以为这么快就搞定了.事实不既然,我把我们web项目部署进去,结果出现很多问题.想必这些问题过来人肯定遇到过.问题如下:1.2个tomcat7单独启动,项目部署进去,都可以登录进去并运行.这是我的配置Memcached在tomcat7/conf

关于 tomcat 集群中 session 共享的三种方法

前两种均需要使用 memcached 或 redis 存储 session ,最后一种使用 terracotta 服务器共享.  建议使用 redis ,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,  不只是缓存 session ,还可以做其他用途,一举几得啊.  1.使用 filter 方法存储  这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于 tomcat ,而且实现的原理比较简单容易控制.  可以使用 memcached-session-f

Nginx和Tomcat负载均衡实现session共享(转)

    以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架.     此框架的优势:          1.支持Tomcat6和Tomcat7           2.操作粘性或不黏性Session           3.没有单点故障           4.Tomcat的故障转移           5.Memcached的故障转移           6.

Tomcat利用Redis存储Session

如果英文不错的看,建议直接看官网吧,官网写的挺清楚.下面的内容是转载的一篇文章,自己补充了一些,供大家参考,也欢迎大家一起讨论 截止到2015-05-12前是不支持Tomcat8的,详情见官网:https://github.com/jcoleman/tomcat-redis-session-manager 前提:你已经部署了Redis,尚未学会的,可以移步这里:http://blog.csdn.net/caiwenfeng_for_23/article/details/45511007 其实很简

session-apache tomcat集群Session 共享后报错!

问题描述 apache tomcat集群Session 共享后报错! 我参考http://www.blogjava.net/killme2008/archive/2007/03/13/103607.html 实现session共享.然后我把我的工程放到tomcat 里面去.启动不报错.点击登录的时候就登录不进去.多次点击登录按钮会进入到主界面然后又强制退出到登录界面.我的tomcat集群版本是Apache 2.2.25Tomcat-7.0.55 点击登录的时候报:严重: Manager [loc

session共享之memcache redis

redis和memecache的不同在于: 1. Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片.视频等等. 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储. 3.虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 4.过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期.Redis可以通过例如exp

tomcat+nginx+memcached+windows session不能共享

问题描述 tomcat+nginx+memcached+windows session不能共享 困扰我两天了. 使用tomcat7+nginx,实现负载均衡,并且测试通过. 但是session不能够共享,项目登录之后,进行其他操作时候提示登录,说明nginx转发请求到其他tomcat时候,丢失了session. 加入memcached,想要实现session共享. 按照网上的说明配置,启动,但是session并不能实现共享. 下载的jar,拷贝到tomcat/lib下面. memcached下载

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服