设为首页 收藏本站
查看: 394|回复: 0

[经验分享] 扩展Tomcat使用memcached存放session信息

[复制链接]

尚未签到

发表于 2017-1-27 12:10:17 | 显示全部楼层 |阅读模式
  看到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里增加了
代码

  • <ManagerclassName="org.apache.catalina.session.MemcachedManager"serverlist="127.0.0.1:11212"snaidPerfix="snaid"snaidFlag="true">
  • /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 http://www.javaeye.com/images/forum/icon_clip.gif
下载
文件名:tomcatmemsession.rar
文件大小:6 KB
下载过的:文件被下载或查看354 次

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-334082-1-1.html 上篇帖子: Tomcat中部署web应用的方式 下篇帖子: tomcat采用msm往memcached保存sessoin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表