本文参考:http://edocs.bea.com/wls/docs100/cluster/failover.html
[size=medium][b][color=darkblue]一: Programming Considerations for Clustered Servlets and JSPs
集群环境中的Servlet/JSP编程时注意事项:[/color][/b]
[b][color=darkblue]1. Session Data Must Be Serializable[/color][/b]
Session中存储的对象必须是可序列化的。
[b][color=darkblue]2. Use setAttribute to Change Session State[/color][/b]
调用session对象的setAttribute方法,session对象和它的attributes会在集群中复制到其他服务器中。所以,对session中的attribute对象的任何更改后,都应该调用setAttribute方法来同步其他服务器的session。
这个同步过程是通过in-memory replication来实现的。
[b]
[color=darkblue]3. Consider Serialization Overhead [/color][/b]
考虑拷贝的开销。拷贝过程中序列化开销是应该考虑的,如果对象数据很大,更应该考虑性能问题。
[b][color=darkblue]4. Control Frame Access to Session Data [/color][/b]
尽量限制前台用FrameSet来访问session,因为多个Frame的请求,对于服务器来说,可能是分离的,但是对客户端来说,确应该是一个独立session。这样,如果每个frame都访问或者修改session,则会发生逻辑性的错误。[/size]
[size=medium][b][color=darkblue]二: Session复制/备份[/color][/b][/size]
[size=medium][b][color=darkblue]1. 通过前端代理(例如apache)访问集群中的JSP/Servlet时[/color][/b][/size]
[img]/upload/attachment/102694/12b1beed-fedf-3172-ace9-d64d32e750a9.gif[/img]
[color=darkblue]注意:
客户端浏览器写有两个cookie:primary,scondary分别对应集群中的A,B两个Server。
A Server上存有客户Session数据(Primary State), B Server保存A Server的session备份(Secondary State)。
如果A Server出故障,前端代理会根据cookie自动路由到B Server,这样B就变成新的Primary Server, 同时系统会将Session State备份到Server C上,Server C也就变成了Secondary Server了。[/color]
[size=medium][b][color=darkblue]通过负载均衡硬件访问集群中的JSP/Servlet [/color][/b][/size]
[img]/upload/attachment/102696/d16091eb-77d0-3a45-b6c7-9319efc8207e.gif[/img]
[size=medium][b][color=darkblue]一: Programming Considerations for Clustered Servlets and JSPs
集群环境中的Servlet/JSP编程时注意事项:[/color][/b]
[b][color=darkblue]1. Session Data Must Be Serializable[/color][/b]
Session中存储的对象必须是可序列化的。
[b][color=darkblue]2. Use setAttribute to Change Session State[/color][/b]
调用session对象的setAttribute方法,session对象和它的attributes会在集群中复制到其他服务器中。所以,对session中的attribute对象的任何更改后,都应该调用setAttribute方法来同步其他服务器的session。
这个同步过程是通过in-memory replication来实现的。
[b]
[color=darkblue]3. Consider Serialization Overhead [/color][/b]
考虑拷贝的开销。拷贝过程中序列化开销是应该考虑的,如果对象数据很大,更应该考虑性能问题。
[b][color=darkblue]4. Control Frame Access to Session Data [/color][/b]
尽量限制前台用FrameSet来访问session,因为多个Frame的请求,对于服务器来说,可能是分离的,但是对客户端来说,确应该是一个独立session。这样,如果每个frame都访问或者修改session,则会发生逻辑性的错误。[/size]
[size=medium][b][color=darkblue]二: Session复制/备份[/color][/b][/size]
[size=medium][b][color=darkblue]1. 通过前端代理(例如apache)访问集群中的JSP/Servlet时[/color][/b][/size]
[img]/upload/attachment/102694/12b1beed-fedf-3172-ace9-d64d32e750a9.gif[/img]
[color=darkblue]注意:
客户端浏览器写有两个cookie:primary,scondary分别对应集群中的A,B两个Server。
A Server上存有客户Session数据(Primary State), B Server保存A Server的session备份(Secondary State)。
如果A Server出故障,前端代理会根据cookie自动路由到B Server,这样B就变成新的Primary Server, 同时系统会将Session State备份到Server C上,Server C也就变成了Secondary Server了。[/color]
[size=medium][b][color=darkblue]通过负载均衡硬件访问集群中的JSP/Servlet [/color][/b][/size]
[img]/upload/attachment/102696/d16091eb-77d0-3a45-b6c7-9319efc8207e.gif[/img]