memcached nodes:每一个memcached node 定义方式为
membase bucket uris (since 1.6.0): 使用membase 必须配置一个或者多个membase bucket uris, 例如 http://host1:8091/pools,http://host2:8091/pools. Bucket用户名和密码必须通过 username跟password 配置(下面还会讲到)。 连接到 membase 需要一些支持memcached 协议的jar包. 需要把 jettison.jar 跟 netty.jar 放到 CATALINA_HOME/lib/.
failoverNodes (可选的, 在 non-sticky sessions 是必须的)
当有其他可以使用的memcache 节点的时候使用,因此你应该列出那些跟你的tomcat在同一台机器上的memcached node例如,host1上安装了tomcat1(t1) memcached1(m1),host2上安装了tomcat1(t2) memcached1(m2),你应该设置n1作为tomcat1的failover node.因此当memcached2(tomcat2 failoverNodes 设置为 n2)不能使用的时候tomcat1 的session 仅仅存储在memcached1. 这种设置当host1宕机的时候tomcat1的session 还是可以继续工作的。
对于非粘性会话的会话是不依赖于一个单一的tomcat failoverNodes不得指定。对于membase buckets 这个属性可以省略。
多个memcached node 必须用空格“ ”或者逗号“,”分隔。
username (1.6.0以后, 可选的)
membase bucket或者SASL 使用的username,如果memcachedNodes 包含一个(或多个)membase bucket uri,这就是bucket的名称。如果memcachedNodes 使用了username 给SASL授权。还需要一个memcached 协议的包。
password (1.6.0以后, 可选的)
membase bucket 或者 SASL 授权密码(如果没有密码默认为空就好)。
memcachedProtocol (1.3以后, 可选的, 默认值 text)
使用的memcached的协议, text或者binary.
sticky (1.4.0以后, 可选的, 默认值 true)
设置 sticky Session 或者 non-sticky Session.
根据您的问题,首先您考虑下代码中session传递是否存在问题,这个我不知道在吗测试,我不太会java。其次检查tomcat中的关于session的配置,比喻session周期,生存时间等。最后检查memcachd是否正常,memached是非常好的一个技术,但是也是容易出.