技术开发 频道

在 WebSphere Application Server 中部署多个共存应用程序并解决相应

【IT168 技术文章】

    在 IBM? WebSphere? Application Server 的单一实例中部署多个共存应用程序在某些环境中具有一定的好处,但在问题隔离和问题确定方面也会产生一些特有的困难。本文阐述保持应用程序共存优势并减少潜在缺陷的影响所需的技术和非常好的实践。

    摘自 IBM WebSphere 开发者技术期刊。

    引言

    在电子商务和 IBM WebSphere Application Server 的初期,用户在各个应用服务器实例中部署单一应用程序的现象非常普遍——他们甚至将多个应用服务器实例集群在一起,专门承载某个单一的应用程序。但是,随着电子商务的普及和发展,越来越多的用户有许多应用程序需要寄宿在 Web 应用服务器上,现在将多个(相对较小)独立应用程序运行在单一应用服务器实例或应用服务器集群的趋势越来越突出。

    此服务器整合或应用程序共存方法有一些优点同时也存在缺点:

    优点

    *成本较低。此方法的主要好处就是其规模上的经济性。用少量的物理服务器和服务器进程承载大量的应用程序通常可以在硬件资源、基础结构、软件成本和系统管理成本方面节约大量的开支。

    *资源共享。在一个服务器实例中,多个应用程序之间共享资源这一概念使得更好地利用资源成为可能。一个应用程序的空闲期可能是另一应用程序的峰值期。当然,这也可能是多个独立服务器共享一个通用的硬件资源池,还可能是在单个应用服务器进程中进一步共享其他资源池(例如,共享内存池、数据库连接池等等)。就其本质而言,这实际上就是随需应变的计算原则。

    缺点

    *问题确定。如果一个服务器崩溃或者开始出现某些异常行为(例如响应时间缓慢、出现错误消息等等),则在同一服务器上同时部署的多个应用程序中,可能很难确定究竟是哪个应用程序造成了此问题,是直接造成的还是间接造成的。事实上,仅关注一个应用程序中的缺陷或错误配置可能是不够的;基础 WebSphere Application Server 运行时中的某个缺陷或错误配置可能以不同的方式影响不同的应用程序——或者可能由于某些特定的应用程序存在而触发,进而影响其他应用程序。在这些情况下,多个应用程序的共存可能使探究问题的根本原因更加困难。

    *问题隔离。由于多个应用程序共享环境中的许多通用资源,源于一个应用程序中的任何问题都可能最终影响在同一服务器上运行的其他应用程序。这些问题可能是从与性能调整相关的细微影响到服务器完全瘫痪,通常需要应用程序部署人员和管理员在处理不同的应用程序时协调他们的活动。

    在本文中,我们将阐述保持应用程序共存优势并减少潜在缺陷的影响所需的技术和非常好的实践。

    故障诊断方法和实践

    对于共存应用程序相关的许多问题,采取的必要方法是在出现问题时排除问题,因此从概述如何排除 WebSphere Application Server 中的问题入手可能对您有所帮助。

    当然,对于特定的问题,有许多详细情况和不同的解决方法。但是,了解两种不同类型的故障诊断方法非常有用,它们几乎适用于各种情况:

    *分析。首先从系统中获取诊断信息(错误消息、跟踪或状态转储),然后尝试分析和理解其含意。如有必要,您可以循环获取更为详细的诊断信息并“逐层深入”地进行分析,直到明显确定导致某个问题的具体原因。这实质上是一种“白盒”方法,它基于您透彻了解所研究系统的内部构造。

   * 隔离。您尝试确定所研究的整个系统中仍存在问题的尽可能小的子集。该子集可能存在于系统的物理组件中(仅在启用应用程序的该部分时才出现此问题),也可能存在于系统的执行流中(仅在尝试执行此特定功能时才出现此问题)。如有必要,可以循环执行此过程以进行测试和消除不确定因素,直至将问题限定到尽可能小的区域,这样可能会非常容易地发现问题的真正原因。与分析方法(分析方法要求尽可能深入了解系统功能的详细信息)相比,此方法只需关注可分组件和流之间的交互,通常不需要详细了解这些组件或流的实际工作方式。这通常称为“黑盒”方法。

    当然,在实际研究问题的整个过程中,通常结合使用这两种方法(例如,先隔离某个组件的问题,然后分析该组件产生的诊断信息),但认识这两种研究方法非常有用,因为每种方法都受各种工具、编码技术、部署策略和管理技术支持。

    尽管在共存应用程序中以及在每服务器一个应用程序中会使用这两种方法,但隔离方法更多地用于共存应用程序中,因为故障诊断的最初目的大多是隔离导致问题的应用程序或主要受某个问题影响的应用程序。例如:

    *在测试服务器中,尝试一次启用或禁用一个应用程序,了解启用哪些应用程序时会出现问题。
    *在不同服务器中临时重新分布应用程序,了解哪个或哪些应用程序会导致问题。
    *尝试一次在一个应用程序中修改 WebSphere Application Server 配置参数(例如 HTTP 缓存、动态缓存等等),了解参数更改如何影响该问题。
 
    这些步骤虽然在某些真实环境中实现时偶尔会有困难,但在其他类似的分析或隔离技术不足以解决问题时,有时是唯一可行的办法。

    我们提供了若干信息资源,通过这些资源可以获得解决各种问题的说明,无论它们是特定于共存应用程序的问题,还是更为一般的问题。请参阅 “权威支持”,获取故障诊断工具和资源的完整列表。

0
相关文章