Apache.Tomcat整合,用cookie取代Tomcat之间Session的复制
公司网站用Apache+Tomcat集群后,经过观察发现Tomcat之间的Session复制非常的消耗资源。一个Tomcat挂掉后,另外一个要复制很久才能复制完成。导致如果session很多,一个Tomcat挂掉,网站访问变得很慢.
现在改成Cookie来取替Tomcat之间的复制,具体实现方式如下:
?
登录时将用户信息存入一份在Session中,然后向用户的本机中插入一条cookie信息。由于去掉了Tomcat之间Session的复制所以需要用到Session业务的时候,在一个Tomcat中有session信息,如果在这个过程中被分配到另外一个Tomcat运行后就会出现找不到Session信息的错误。考虑到这一条我写了一个过滤器来对网站的请求进行过滤,先判断session中有没有值。如果有就过,如果没有就到本地来取一次cookie,如果存在即在当前Tomcat上恢复Session.代码如下
?
Cookie工具类
?
过滤器
?
?
登录时加入cookie中
?
CookieUtil.setCookie(request,response,"cookiename",cookieValue.toString(),60*120);?不知道还有没有更好的办法和改进的余地
1 楼 wuyuwentian 2009-02-05 这样做是不安全的,我们都知道cookie的值是能被伪造的,我觉得你应该对cookie的值加密,服务端需要回复session的时候需要验证cookie的有效性 2 楼 ws715 2009-02-05 wuyuwentian 写道这样做是不安全的,我们都知道cookie的值是能被伪造的,我觉得你应该对cookie的值加密,服务端需要回复session的时候需要验证cookie的有效性
除了安全,还有别的可以改进吗?