ibm webspher集群注意事项

JESSIEfoo 2009-12-15

1. 规划集群方案时应考虑哪些因素?

答:

在规划高可用的集群方案时,我们建议按以下因素规划和评估:

1.分析需求:

  • 是否需要持续运转?大多数用户不需要持续运转,硬软件升级可以脱机完成;
  • 运转时需要哪种可用性?
  • 故障恢复时对性能有什么要求?例如,一个node/server故障时,性能可能会受到影响;
2.分析成本:
  • 如果系统不可用,损失是多少?
  • 您准备向可用性投入多少?
3.评估配置管理的复杂性:系统越复杂,越需要更高的技术人员技能和配置管理成本。

4.考虑整个系统里各组件的可用性:通常,整体可用性由系统中最弱的点决定。

5.分析故障恢复时间:主要是故障探测时间和恢复时间。对于不同的技术,故障恢复的时间也是不同的。

6.分析故障恢复的关键点:这直接关系到工作量和成本。

7.理解编程模型:这关系到故障恢复对客户端和其他组件是否是透明的。如果部分组件不是透明的,必要时需要添加额外的处理。

8. 考虑故障影响范围:一些系统可能有一些特别的约束。故障发生时,可能有其他的系统受到影响。
 
2. 在异构平台上创建 WAS V6.1 集群,避免使用绝对路径。

答:

在异构平台上创建 WebSphere Application Server V6.1 集群,最主要的问题是异构操作系统的目录格式不同,产品的缺省安装目录也不同。为了避免因目录和目录格式的不相同所带来的影响,在资源配置和应用部署中,应当避免使用绝对路径,而采用通用的节点作用域 WebSphere 变量来替代,然后根据每个节点的实际情况来对该变量赋值。
 
3. 在设计和开发运行于 WAS 集群环境的应用程序时需要考虑哪些方面?

答:

在面向集群环境的应用程序中,需要考虑的方面主要包括文件同步,会话管理和动态缓存等。
  • 文件同步

    如果应用程序使用了存储于文件系统的数据,那么应当保证它们在每个集群服务器中的一致。一个可行的解决方案是使用共享的文件系统或共享的数据库,然而这种方法会导致一个新的单点故障和性能的瓶颈,并且可能会增加编程和配置工作的复杂性。另外一种方法是使用WAS所支持的细粒度文件更新,您可以在集群范围内拥有更灵活的应用程序文件,并避免引入新的单点故障。

    关于细粒度文件更新的更多内容,请参见WASV6.1信息中心:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp

  • 会话管理

    会话管理是Web应用程序的一个重要的考虑事项。WAS为集群环境下的应用程序提供了实时一致的会话数据共享机制,提供包括基于内存拷贝的共享和基于数据库的共享方式。从应用程序设计的开发的角度,您应该考虑进行对象序列化和反序列化,以便将其放入会话中并在集群范围内进行共享。您可以使用自已定义的类将对象封装到会话中,然后执行验证。会话的复制是一个开销比较大的过程。因此,为了保证性能,您需要尽量降低会话对象的大小,从而提高复制时的效率。

  • 动态缓存您可以通过使用WAS提供的动态缓存和数据复制服务来实现集群范围内应用程序数据的共享,这将显著地提高应用程序的性能。

关于动态缓存的更多内容,可参见WAS V6.1信息中心:http://publib.boulder.ibm.com/in ... n_dynamiccache.html

4. 在集群环境中,我应该使用数据库持久化的方式还是使用内存到内存复制的方式来进行会话故障转移?

答:

数据库持久化和内存到内存复制之间的性能差异并不大。这是因为 95% 的复制或持久化会话开销是在会话对象的序列化/反序列化中产生的——不论会话保存在哪里,这种开销都必定会产生。  决定选择哪种技术将部分基于这两种技术之间的差异:
  • 通过使用数据库,您实际上持久化了数据(保存到磁盘中),这样高可用性的数据库服务器就可以在级联故障中幸免于难,而内存复制的方式无法达到此目的。
  • 对于两个相同的单元/域,高可用性的数据库完全可以确保两个域之间的会话故障转移,而对于内存到内存复制,两个单元只能有一个通用复制器;因此,它就变为单点故障(Single Point Of Failure,SPOF)。
因此,对于必须进行交叉单元会话故障转移的配置,只能选择高可用性数据库来消除 SPOF。请注意,此时跨单元共享会话是得到支持的,但不建议这样做,因为在单元间共享状态将使得在两个单元中独立升级组件(应用程序和 WAS)异常困难。  另外,利用内存到内存复制,您可以存储的会话信息的数量受应用服务器的 JVM 堆大小的限制。即使在 WebSphere Application Server V6.01 中支持 64 位的 JVM,最大应用服务器堆大小也大大小于数据库服务器(用作会话存储)上可用的磁盘空间数量。因此,尽管在许多组织中,使用内存到内存复制对避免系统管理员和数据库管理员之间的角色和职责冲突更有利,但数据库持久化仍是最佳选择。 

相关推荐