5. Session复制
5.1. HTTP会话状态复制介绍
5.
5.1.
5.1.1. 对JSP和Servlet提供集群支持
WebLogic服务器通过复制HTTP会话状态,对JSP和Servlet提供集群支持。
5.1.2. 实现方式
内存复制
JDBC复制
文件系统复制
本文只做了”内存复制”的配置。
5.1.3. Session复制要求条件
Session必须序列化
为了支持in-memory http session复制,所有的servlet和jsp会话数据必须可序列化,实现java.io.Serializable接口。
用setAttribute 修改 Session 状态
在实现了javax.servlet.http.HttpSession的http servlet中,用HttpSession.setAttribute代替putValue方法去修改session 对象。putValue方法不建议用,同样用removeAttribute代替removeValue去删除session对象。
避免大的session对象
因为往session中存放的数据比较大时,系统的响应速度明显变慢,有时会出现内存溢出的情况。
框架的使用
在特定的框架集(frameset)中,确保只有一个框架(frame)创建和修改会话数据;必须确保只在第一个框架集的一个框架中创建会话,其他框架集访问该session。
5.2. Weblogic配置要求
5.2.
5.2.1. 机器
WebLogic服务器中,机器名用来指明一个受管服务器运行在一个特定的硬件上。机器定义是WebLogic选择另一个服务器作为它的会话信息备份时的一个考量因素。
5.2.2. 复制组
复制组是集群中相关服务器的逻辑组,WLS允许你使用复制组,决定在哪里放置备份对象。WLS尝试以下方式进行session复制:
• 如果配置过,发送备份对象给预定义次要复制组
• 发送备份对象给不同机器
• 避免发送备份对象给同一个复制组中的服务器
5.2.3. 分级服务器
WebLogic服务器对集群中的服务器分级,以决定哪个服务器作为备份:
图66
5.2.4. weblogic.xml部署描述配置
会话持久性通过weblogic.xml部署描述符文件中的<session-descriptor>元素配置的,每种持久性方法都有自己的配置参数集。
5.3. 内存复制方式
5.3.
5.3.1. 服务器和会话对象
WLS可以复制HttpSession对象和
有状态会话EJB,会话对象仅存在两
台服务器上,称作主要服务器和次
要服务器。次要服务器由复制组和机
器定义决定,主要对象创建后,次要
对象马上被创建。如右图所示
图67
主要服务器失败,使得备份对象成为主要对象,如下图。
图68
5.3.2. 复制组故障接管
图69
5.3.3. 内存复制的要求
来自同一个客户端的后续请求必须访问同一个主要对象
为了使用HTTP会话状态内存复制,客户端必须使用下面方法之一访问集群:
• 负载均衡硬件(WLS知晓)
• Web服务器集合,或单个Web服务器,带有WebLogic代理插件(配置相同)
• 配置有HTTPClusterServlet的WebLogic服务器(本文采用方式)
5.3.4. 配置内存复制
配置代理服务器(如果适用)
配置复制组和/或机器(可选)
在weblogic.xml部署描述符中指定持久类型
<persistent-store-type>replicated_if_clustered</persistent-store-type>
以下文章点击率最高
Loading…