JESSIEfoo 2009-12-15
答:
在规划高可用的集群方案时,我们建议按以下因素规划和评估:
1.分析需求:
4.考虑整个系统里各组件的可用性:通常,整体可用性由系统中最弱的点决定。
5.分析故障恢复时间:主要是故障探测时间和恢复时间。对于不同的技术,故障恢复的时间也是不同的。
6.分析故障恢复的关键点:这直接关系到工作量和成本。
7.理解编程模型:这关系到故障恢复对客户端和其他组件是否是透明的。如果部分组件不是透明的,必要时需要添加额外的处理。
8. 考虑故障影响范围:一些系统可能有一些特别的约束。故障发生时,可能有其他的系统受到影响。答:
在异构平台上创建 WebSphere Application Server V6.1 集群,最主要的问题是异构操作系统的目录格式不同,产品的缺省安装目录也不同。为了避免因目录和目录格式的不相同所带来的影响,在资源配置和应用部署中,应当避免使用绝对路径,而采用通用的节点作用域 WebSphere 变量来替代,然后根据每个节点的实际情况来对该变量赋值。答:
在面向集群环境的应用程序中,需要考虑的方面主要包括文件同步,会话管理和动态缓存等。如果应用程序使用了存储于文件系统的数据,那么应当保证它们在每个集群服务器中的一致。一个可行的解决方案是使用共享的文件系统或共享的数据库,然而这种方法会导致一个新的单点故障和性能的瓶颈,并且可能会增加编程和配置工作的复杂性。另外一种方法是使用WAS所支持的细粒度文件更新,您可以在集群范围内拥有更灵活的应用程序文件,并避免引入新的单点故障。
关于细粒度文件更新的更多内容,请参见WASV6.1信息中心:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp
会话管理是Web应用程序的一个重要的考虑事项。WAS为集群环境下的应用程序提供了实时一致的会话数据共享机制,提供包括基于内存拷贝的共享和基于数据库的共享方式。从应用程序设计的开发的角度,您应该考虑进行对象序列化和反序列化,以便将其放入会话中并在集群范围内进行共享。您可以使用自已定义的类将对象封装到会话中,然后执行验证。会话的复制是一个开销比较大的过程。因此,为了保证性能,您需要尽量降低会话对象的大小,从而提高复制时的效率。
关于动态缓存的更多内容,可参见WAS V6.1信息中心:http://publib.boulder.ibm.com/in ... n_dynamiccache.html
答:
数据库持久化和内存到内存复制之间的性能差异并不大。这是因为 95% 的复制或持久化会话开销是在会话对象的序列化/反序列化中产生的——不论会话保存在哪里,这种开销都必定会产生。 决定选择哪种技术将部分基于这两种技术之间的差异: