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

tomcat 集群、负载均衡 基于memcached 缓存session 的问题

阅读更多
最近的一个项目要用到tomcat 集群、负载均衡。可是不想用粘性session或session复制这种方式来管理session。找找缓存session的方法看到了codeutil的一个帖子扩展Tomcat 6.x,使用memcached存放session信息
感觉不错,于是就试了试。也实现了他所说的Filter方法,但是用到集群上还是有问题要解决的。但是我想不到怎么解决,于是拿出来请大家帮想想法!
引用

如果配置集群时,不用session复制或粘性session的话每次请求sessionid都会改变。这样根据sessionid缓存的值就无法取到了。
分享到:
评论
8 楼 Joo 2008-07-29  
想问问tomcat做群集的可行性前提,业务到达什么级别才需要用到这个?
7 楼 javadonkey 2008-07-28  
quaff 写道
javadonkey 写道
neptune 写道
为什么cookie不好,最好的东西了

很有可能用户会关掉cookie的。
如果那样的话,他不是就不能用这个系统了??

关掉cookie可以匿名访问不代表不能使用这个系统,而且用户自己知道关闭cookie带来的影响,因为默认是打开的,只有专业人士才会去关闭.
如果用urlrewrite方式把sessionid放在path parameter里面,很容易被session fixation攻击,而且对搜索引擎不友好.
https://issues.apache.org/bugzilla/show_bug.cgi?id=45255

quaff 的方法,我也想过。但是相当不安全啊。
6 楼 javadonkey 2008-07-28  
恩!!没有别的办法也只能用cookie啦
5 楼 bloodrate 2008-07-28  
是个sso问题啊,用户登录会话信息需要双方都有所设置阿,服务器会为用户保存session,但是服务器存了上万session,它怎么知道哪个session是属于哪个用户的阿,还不是需要用户把sessionid穿过去,服务器上检索那个session的id等于你穿过来的id,哪个session就是属于你的,那么用分布式缓存来取代多应用或者群集之间session必须复制的方式是个好办法,但是仍然需要本地使用cookie保存sessionid阿,因为cookie是本地保存状态的唯一方式阿。
4 楼 quaff 2008-07-28  
javadonkey 写道
neptune 写道
为什么cookie不好,最好的东西了

很有可能用户会关掉cookie的。
如果那样的话,他不是就不能用这个系统了??

关掉cookie可以匿名访问不代表不能使用这个系统,而且用户自己知道关闭cookie带来的影响,因为默认是打开的,只有专业人士才会去关闭.
如果用urlrewrite方式把sessionid放在path parameter里面,很容易被session fixation攻击,而且对搜索引擎不友好.
https://issues.apache.org/bugzilla/show_bug.cgi?id=45255
3 楼 javadonkey 2008-07-28  
neptune 写道
为什么cookie不好,最好的东西了

很有可能用户会关掉cookie的。
如果那样的话,他不是就不能用这个系统了??
2 楼 neptune 2008-07-28  
为什么cookie不好,最好的东西了
1 楼 javadonkey 2008-07-28  
基于cookie存sessionid是可以的,但是个人感觉cookie不是很好。

相关推荐

    Nginx+Tomcat7+Memcached集群Session共享

    Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...

    性能调优 海量并发 系统架构

    Nginx+tomcat集群Memcached+Session复制 高性能高并发服务器架构 基于nginx的tomcat负载均衡和集群 实现多服务器负载均衡 系统性能优化 数据库 Nginx+Squid负载均衡 配置好的集群 总共三十个文档">Apache+Tomcat+...

    tomcat-7.0.47-memcached-各种序列化策略-session共享

    tomcat服务器+memcached缓存session共享集群,软件包中包含各种序列化策略,已测试通过。

    apache-tomcat-7.0.47-memcached-各种序列化策略-session共享

    tomcat服务器+memcached缓存session共享集群,软件包中包含各种序列化策略,已测试通过。

    memcached-win32-1.4.4-14内存数据库

    可做tomcat集群session共享和内存数据库使用,内含32位和64位,需要64位将64位的三个文件替换到32位中即可;简介如下: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过...

    java开源包1

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包11

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包2

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包3

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包6

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包5

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包10

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包4

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包8

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包7

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包9

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    java开源包101

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    Java资源包01

    支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。 ...

    JAVA上百实例源码以及开源项目源代码

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

Global site tag (gtag.js) - Google Analytics