分类: LINUX
2015-01-29 13:43:37
如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块。
本文当采用tomcat默认集群配置(
下载 8.0 到本地, 保存为tomcat1, 复制tomcat1 为tomcat2,
修改tomcat2的端口设置,可以参考下面这个链接修改端口。
在 examples 目录下创建一个session.jsp文件,用来测试Cluster中两个Tomcat使用的Session是同一个Session,并且当其中一个Tomcat修改Session中的值时,第二个Tomcat会同样得到更新;代码如下:
<% String mydata = request.getParameter("mydata"); if (mydata != null && mydata.length() != 0) { session.setAttribute("mydata", mydata); } out.println("request.getLocalAddr(): " + request.getLocalAddr()); out.println("
"); out.println("request.getLocalPort(): " + request.getLocalPort()); out.println("
"); out.println("Session ID: " + session.getId()); out.println("
"); out.println("mydata: " + session.getAttribute("mydata")); %>
现测试一下不添加cluster配置, 是什么情况。
session的值是不一样的。
接着我们添加cluster配置。
修改tomcat1 和tomcat2 conf/server.xml文件,将其中
修改tomcat1 和tomcat2 的.xml
修改其中的WEB-INF/web.xml文件,在其中
Servlet and JSP Examples. Servlet and JSP Examples
重启tom1, tomcat2
可以看到session同步成功!