`
touchmm
  • 浏览: 1048000 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

扩展Tomcat使用memcached存放session信息

阅读更多

看到javayou的刘东关于扩展Tomcat的Session存取机制的思考:
http://www.javayou.com/html/diary/showlog.vm?sid=2&log_id=8534
结合自己曾经写好的在过servlet滤器实现session存放到memcached的代码,
采取扩展 org.apache.catalina.session包下 一共新增MemcachedManager 和 MemcachedSession即可。

实现MemcachedManager继承 org.apache.catalina.session.StandardManager,
MemcachedSession继承 org.apache.catalina.session.StandardSession。

动手试了一下,搞定getAttribute和setAttribute和expire,removeAttribute。

测试步骤如下:
1.首先从http://www.javaeye.com/topic/24505
下载memcached的windows版本。

2.下载相关的jar,需要log4j.jar,commons-logging.jar,commons-logging-adapters.jar,commons-logging-api.jar,java_memcached-release_1.5.1.jar

复制到x:\apache-tomcat-6.0.13\lib下面。

3。然后下载本文附件tomcatmemsession.rar,然后改名为tomcatmemsession.jar,也复制到x:\apache-tomcat-6.0.13\lib下面。

4.将tomcatmemsession.jar里的context.xml替换x:\apache-tomcat-6.0.13\conf下同名文件。

(主要是context.xml里增加了

代码
  1. < Manager className = "org.apache.catalina.session.MemcachedManager" serverlist = "127.0.0.1:11212" snaidPerfix = "snaid" snaidFlag = "true" >
  2. /Manager >

)
5.运行memcached.exe。
(可以运行memcached.exe -vv , -vv可以在控制台显示日志信息 )
6。启动tomcat,在web应用中setAttribute设置支持序列化的属性值。
7. 然后重起tomcat,在再浏览器里访问,jsp读取相关属性的值(使用getAttribute方法),将发现相应属性值都可以正常读取。

(getAttributeNames没有重写,因此无法遍历方式读取属性,只能通过getAttribute读取)

在自己通过servlet过滤器方式实现的时候,使用了oscache分布式cache,这样可以减少对memcached的访问次数。
但是在MemcachedSession里使用oscache的时候,出现点小问题,没时间仔细检查,于是把oscache去掉了。

有空再加上oscache作为二级缓存。

tomcatmemsession.jar 内包含源代码 MemcachedManager.java 和MemcachedSession.java

tomcatmemsession.rar
描述: tomcatmemsession.jar 内包含源代码 MemcachedManager.java 和MemcachedSession.java
下载
文件名: tomcatmemsession.rar
文件大小: 6 KB
下载过的: 文件被下载或查看354 次
分享到:
评论

相关推荐

    tomcat8 memcached session共享jar包

    标题中的“tomcat8 memcached session共享jar包”指的是在Tomcat 8中使用Memcached作为session共享存储的解决方案。Memcached是一种分布式内存缓存系统,常用于减轻数据库负载,提高应用性能。在Tomcat这样的Java...

    apache-tomcat 7 集成了memcache-java-session相关包

    在提供的压缩包文件中,`bin`目录包含了Tomcat的可执行脚本,`conf`目录存放了配置文件,`lib`目录则包含运行Tomcat所需的各种库文件,可能包括了用于Memcached集成的Java包。`NOTICE`和`LICENSE`文件提供了软件许可...

    一晚上搞定Tomcat集群

    6. **session复制**:为了在集群中保持session的一致性,Tomcat支持多种session复制策略,如基于TCP的复制、基于文件的复制或者使用分布式缓存(如Memcached、Redis)来存储session。 7. **故障检测与恢复**:集群...

    jsp房屋系统源代码

    - **Session管理**:为了保持用户状态,系统可能会使用HttpSession对象存储用户信息,如登录状态。 3. **JSP指令和动作** - ****:用于动态包含其他页面,提高代码重用。 - ****:用于实例化和查找JavaBean。 -...

    java开源包8

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包1

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包11

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包2

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包3

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包6

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包5

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包10

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包4

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包7

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包9

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包101

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    Java资源包01

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

Global site tag (gtag.js) - Google Analytics