nginx+tomcat7+memcached集群session共享,session居然不稳定!!!
如题我做了个测试简直无语了,我用的是struts2,为了便于发现问题,我特意在jsp页面上也写了段java代码,输出sessionID和session的类容代码如下: <% System.out.println(session.getId()); out.println("<br> This is (TOMCAT1), SESSION ID:" + session.getId()+"<br>"); User user=(User)ActionContext.getContext().getSession().get(SessionKey.getUserSessionKey()); if(user!=null){ out.println("<br> 用户:"+ user.getUserNameEmail()+"<br>"); } else { out.println("<br> : 用户:不存在<br>"); } %> 这是jsp页面的,另外我在后台action中也这样: Map<String, Object> session = ActionContext.getContext().getSession(); User user = (User)session.get(SessionKey.getUserSessionKey()); 怪事就出来了,JSP可以每次正常输出session类容,而且session在集群中没一个节点的时候sessionID不会变,但是后台有时候输出Map<String, Object> session = ActionContext.getContext().getSession();的session 是空,有时候又是正常能取值,在这里郁闷的快一周了,求大侠相助啊
最满意答案
根据您的问题,首先您考虑下代码中session传递是否存在问题,这个我不知道在吗测试,我不太会java。其次检查tomcat中的关于session的配置,比喻session周期,生存时间等。最后检查memcachd是否正常,memached是非常好的一个技术,但是也是容易出问题的,因为内存本身就是临时快速存储,一刷新就会失效。具体的问题还是要自己检测的,查看日志。我只能告诉你我一般排错的流程,具体事情具体对待。更多推荐
发布评论