`
MiMiEye
  • 浏览: 130267 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

参考codeutil的帖子使用memcached作为tomcat的session存储的问题

    博客分类:
  • J2EE
阅读更多
http://www.iteye.com/topic/81641
我参考着实现了一下,并且看了看原代码,根据我的理解,应该是这样一种流程:

场景:A服务器,B服务器,某一个IE客户端;

*1 IE访问A服务器,A服务器会在机器内生成一个session,并且把当前sessionId存入memcached;
*2 IE在A服务器中存入一个值
request.getSession ().setAttribute ("USER-ID", "20000");

*3 IE不关闭的情况下(手工修改其地址),访问B服务器的某个JSP页面
String userId = (String) request.getSession ().getAttribute ("USER-ID");

*4 最理想的状态应该是可以取到userId值,事实上,除非我把A服务和B服务全部部署在一台机器上才行.

分析:
根据分析源代码得知,*2步聚,只是在memcached中存了一对<sessionId, "true">这样一对键值对;

而在该次会话去访问B服务时,B服务器会findSession(String sessionId),但这时一定找不到;

于是便会到memcached中去找,结果发现找到了,就会根据这个sessionId来createSession (sessionId);

于是B服务器中就有了与A服务器中的sessionId一致的session.

接下来的就是我的猜测,拥有一致的sessionId后,在服务端处理request时,从当中取session,并从sesion对象中取值,除非session是基于cookie实现的,才没有问题,否则,应该取不到任何值才对的,这也证明了,为什么会出现*4步聚的情况.因为是基于cookie实现的,所以能够取到userId的值.

实在是没有空看tomcat的源代码,只能根据实验结果进行猜测,还望同行帮忙纠正一下呀.到底怎样才能够充分利用memcached,实现一个超级简单的单点登陆系统呢?我曾想过直接把存储session的HashMap改为memcached实现......
分享到:
评论
3 楼 likaiabc 2007-12-03  
除非是在同一个域名下,不然LZ这样的方案实现不了哦。
2 楼 MiMiEye 2007-11-27  
呵呵,修改了下,基本实现了要求.还没有测试下性能如何.明天接着搞.
1 楼 MiMiEye 2007-11-27  
呵呵,自顶一下,没看清楚另一个扩展的session类的实现,这位兄弟其实是把另外一些东西存在了memcached中,用的是键名称+sessionId来存的.那为什么还是会有问题呢?

相关推荐

    memcached+tomcat7共享session所需要的jar包

    标题中的“memcached+tomcat7共享session所需要的jar包”是指使用Memcached作为分布式缓存系统,实现Tomcat7服务器间的Session共享。这通常是为了在集群环境中解决Session复制或粘滞会话的问题,提高Web应用的可扩展...

    tomcat8+memcached session共享

    2. `memcached-session-manager-1.8.3.jar`:这个库提供了session管理器,实现了将Tomcat的session数据存储到Memcached的能力。 3. `kryo-1.04.jar` 和 `kryo-serializers-0.11.jar`:Kryo是一个快速、高效的序列化...

    Memcached+tomcat session共享jar 和tomcat xml配置

    在分布式系统中,Session共享是一个常见的挑战,尤其是在多个服务器之间,比如使用Tomcat作为Web容器的环境。Memcached,一个高性能、分布式的内存对象缓存系统,被广泛用于解决这个问题。本篇将深入探讨如何使用...

    memcached+tomcat的session共享

    1. 在Tomcat的`conf/server.xml`文件中,为每个Host元素添加`&lt;Manager&gt;`标签,指定使用memcached作为session管理器。 2. 配置memcached客户端的相关属性,如服务器地址、端口、超时时间等。 3. 对于Spring框架的应用...

    memcached解决tomcat session共享问题jar包

    负载均衡带来tomcat的session不一致问题,采用memcached解决。附件为拷贝到tomcat下的jar 操作文章参考:https://www.cnblogs.com/cac2020/p/10193740.html

    memcached tomcat 共享session

    标题中的“memcached tomcat 共享session”指的是在分布式环境中,使用memcached作为缓存系统来实现Tomcat服务器间的Session共享。这是一个常见的解决大型Web应用中Session管理问题的策略,尤其是在集群部署的情况下...

    MSM--memcached session manager(memcached+tomcat7共享session所需jar包)

    MSM--memcached session manager是一个高可用的Tomcat session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用memcached存取Session,以实现高可用。对于非黏性Session,...

    memcached tomcat session 共享所需jar

    标题中的"memcached tomcat session 共享所需jar"是指在Tomcat服务器中集成Memcached作为session存储,以实现在分布式环境下的session共享。以下是一些关键的jar文件及其功能: 1. **javolution-5.4.3.1.jar**:这...

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置

    tomcat使用memcached配置session同步的所有jar包

    tomcat使用memcached配置session同步的所有jar包,里面有asm-5.2.jar、kryo-4.0.0.jar、kryo-serializers-0.38.jar、memcached-session-manager-1.9.7.jar、minlog-1.3.0.jar、msm-kryo-serializer-1.9.7.jar、...

    Windows + Nginx + Memcached + Tomcat 集群 session共享

    然后,配置Tomcat和Nginx以使用Memcached存储和检索session信息。这通常需要修改Tomcat的server.xml文件,配置`&lt;Manager&gt;`元素为`org.apache.catalina.session.PersistentManager`,并添加相关属性,如`storeDir`、`...

    Tomcat memcached Session依赖jar包

    在Tomcat中集成memcached作为Session管理器,可以将Session数据分布在网络中的多个节点上,实现Session复制和高可用性。 为了在Tomcat中使用memcached进行Session管理,你需要以下关键的依赖jar包: 1. **...

    memcached+tomcat7实现session共享的jar包

    memcached+tomcat7 session共享用到的jar包:javolution-5.5.1.jar,kryo-1.03.jar,kryo-serializers-0.10.jar,memcached-2.5.jar,memcached-session-manager-1.5.1.jar,memcached-session-manager-tc7-1.5.1.jar,...

    tomcat8 memcached session共享jar包

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

    Nginx+Tomcat+Memcached实现tomcat集群和session共享

    在构建高性能、高可用性的Web应用系统时,通常会采用Nginx作为反向代理和负载均衡器,Tomcat作为应用服务器处理Java Servlet和JSP,而Memcached用于存储和共享Session数据。这个配置可以有效地分发用户请求,提高...

    tomcat+memcached 管理session

    首先,`Memcached`作为一种高性能、分布式的内存缓存系统,能够存储包括Web应用中的Session数据在内的临时性数据。通过将Session数据存储在内存中,Memcached可以提供快速的访问速度,避免了频繁读写数据库导致的...

    memcached+tomcat7 session 一致性 jar包

    标题中的“memcached+tomcat7 session 一致性 jar包”是指在Tomcat 7服务器环境中,使用Memcached作为会话管理工具,以实现跨多个应用服务器的会话一致性。这通常是为了提高Web应用的可扩展性和高可用性,因为当用户...

    Memcached-Session-Manager多tomcat实现session共享配置

    Memcached-Session-Manager是解决这个问题的一个优秀解决方案,它允许我们将用户的Session数据存储在内存缓存系统——Memcached中,从而实现跨Tomcat实例的Session共享。下面将详细介绍Memcached-Session-Manager的...

    memcached +tomcat7.52 session同步

    【标题】:在Tomcat 7.52中使用memcached进行Session同步 【内容】: 在现代Web应用中,Session同步是确保用户状态在集群环境中一致性的关键。当一个应用部署在多台服务器上时,传统的session管理方式可能会导致...

    session共享 memcached-session-manager 1.9.6 jar

    `memcached-session-manager`通过将用户的session数据存储在Memcached服务器上,而不是每个单独的Tomcat实例的内存中,实现了跨服务器的session共享。这意味着无论用户请求哪个服务器,他们的session数据都能被正确...

Global site tag (gtag.js) - Google Analytics