转贴:Microsoft Application Center 2000 组件负载平衡技术概述(1)

application

Microsoft Application Center 2000 组件负载平衡技术概述

作者:Chris Rees
本技术概述将讨论 Microsoft Application Center 2000 (Application Center) 组件负载平衡技术 (CLB)。
引言
Microsoft Application Center 2000 (Application Center) 是 Enterprise Server 的一部分,而 Enterprise Server 是 Microsoft 公司推出的 .NET 概念的组成部分。Enterprise Server 包括的其它成员有:Commerce Server 2000、BizTalk Server 2000 和 SQL Server 2000。有关 .NET 的详细信息,请查看站点: http://www.microsoft.com/net
.NET 中 Application Center 的用途是,为基于 Windows 2000 和 Internet Information Services 5.0 的 Web 站点提供内容部署和管理功能。Application Center 使 Web 站点可伸缩、更强劲、易于管理而且更加安全。其核心思想就是由许多 Web 服务器组成一个群集,对客户来说,这个群集就是一个 Web 站点。与此相配合的思想是,被复制到所有群集成员的单个应用程序映像。应用程序映像含有商务解决方案所需的所有部分, 包括 Web 站点、注册表设置、文件、COM+ 组件等。通过反映群集当前状态的事件、性能计数器和监视器,可以很容易地监视群集的运作状况。
Application Center 群集
通过Application Center,可以构建多级群集,它们可以使用各种负载平衡技术。负载平衡技术有助于 Application Center 提供可伸缩性和稳定性。有两种负载平衡技术受到支持:

  • 网络负载平衡 (NLB)
  • 组件负载平衡 (CLB)

Application Center 群集的拓扑结构决定了该如何支持负载平衡技术。一种典型的 Application Center 群集拓扑是以 n 层解决方案为基础的,这种解决方案中包括一个 Web 层群集,用来为客户机提供内容服务。这种 Web 层群集就使用了 IIS 和网络负载平衡 (NLB) 来满足传入的 IP 请求。
file:///F:/My%20Work/技术文档/服务器群设置/Microsoft%20Application%20Center%202000%20组件负载平衡技术概述.files/CLBOVR01.gif
图 1 Application Center 群集的典型拓扑结构
Web 层群集上的软件(ASP 页等)可以在本地计算机上创建和使用 COM+ 组件,或者在另一台远程计算机上通过使用分布式 COM 创建和使用 COM+ 组件。如果没有 CLB,远程活动将是静止的,因为它与已经加在远程服务器上的工作负载无关。这就是 CLB 的真正用途 — 让安装在独立服务器群集上的 COM+ 组件进行可靠、可伸缩和负载平衡地操作。
网络负载平衡
网络负载平衡 (NLB) 是 IP 负载平衡技术,它是 Windows 2000 Advanced Server 和 Windows 2000 Data Center 的一部分。有了 NLB,传入的 TCP 通信、用户数据报协议 (UDP) 通信和一般路由封装 (GRE) 通信请求被分发给各个群集成员。分发的依据是基于服务器负载百分比设置的统计算法。NLB 提供了动态伸缩功能,即在不影响客户机的情况下,自动适应群集内服务器的添加和删除。NLB 是鲁棒的,因为它可以检测到服务器故障,并将其从正运行的群集内悄悄地删除。
Application Center 大大简化了对基于 NLB 的群集的管理。Application Center 群集创建向导会自动配置 NLB 设置。这比单机使用 Windows 2000 时所需的步骤要简单得多。Application Center 还易于在群集内添加、删除服务器,以及将服务器置于联机/脱机状态。
有关 NLB 的详细信息,请查看站点:http://www.microsoft.com/windows2000/library/howitworks/cluster/nlb.asp
组件负载平衡
组件负载平衡技术可以使 COM+ 组件实现负载平衡。COM+ 组件是经过编译的软件对象,可用于多种不同语言,包括 VBS、ASP、Visual Basic 和 C++。它们提供了一种很有用的方法,用来把软件绑定到方便且可重用的实体中。在 CLB 中,COM+ 组件位于独立的 COM+ 群集内的服务器上。旨在激活 COM+ 组件的调用被均衡地加载到 COM+ 群集内的各个服务器上。如图 1 所示,CLB 软件的决策元素运行在 Web 层上。有些收集信息的 CLB 软件的确在 COM+ 群集上运行。
组件对象模型
CLB 的根部是组件体系结构,这一结构由组件对象模型 (COM) 构成。当根据这一标准编写基于对象的软件时,该标准提供了一种使软件服务可用的通用机制。它允许以各种语言、在各种操作系统中编写软件。实现这种灵活性的关键是 COM 接口。
COM 组件的功能通过一个或多个接口来实现。要想使用 COM 组件,客户软件必须以一种知道如何处理接口的语言编写。Visual Basic、ASP、VBS、JavaScript 和 Visual C++ 等语言都是可以的。接口本身只是一个由数字组成的表,其中保存着该接口所支持的方法的地址。
file:///F:/My%20Work/技术文档/服务器群设置/Microsoft%20Application%20Center%202000%20组件负载平衡技术概述.files/CLBOVR02.gif
图 2 COM 组件上的接口
通常,COM 组件位于动态链接库 (DLL) 或者可执行文件 (.exe) 内。它们可以安装在客户机上,也可以位于远程计算机上。当它们被远程使用时,由基于远程过程调用 (RPC) 的分布式 COM (DCOM) 机制来完成调用。
COM+ 服务
COM+ 服务是 Windows 2000 操作系统的一部分,提供了一套基于 COM 和 Microsoft Transaction Sever (MTS) 的服务。COM+ 服务提供了企业级功能,如事务支持、对象生存期服务、安全服务、事件、排队组件等。
COM+ 组件
COM+ 组件是可以利用 COM+ 服务的 COM 组件。对 COM+ 组件的要求之一是它要携带配置信息。配置信息是一组属性,它们使得底层 COM 体系结构能够查明特定的 COM+ 服务(例如事务支持,还有后面我们将要提到的负载平衡)是否被支持。
COM+ 组件被集合组成称为“应用程序”的软件包,这里的应用程序不同于 Application Center 应用程序。COM+ 应用程序是一组 COM+ 组件,而 Application Center 应用程序则是商务解决方案中使用的一系列资源。这方面的例子有 Web 站点、文件、COM+ 组件,以及注册表项。
组件负载平衡的工作方式
CLB 有两大部分:

  • 用于 COM+ 群集负载平衡的 CLB 软件。
  • COM+ 群集(一个由 Application Center 管理的服务器群集,用来激活和运行 COM+ 组件。)

CLB 软件
CLB 软件负责确定激活 COM+ 组件时使用 COM+ 群集成员的顺序。
用于创建 COM+ 组件的业务逻辑运行在 Web 层群集上。这通常是一个 Visual Basic ASP 脚本,当要求使用 COM+ 组件时,该脚本便调用 CreateObject。(在内部被转换为对 CoCreateInstance 的调用)。使用 CLB 时,不是在本地服务器上创建组件,而是用路由列表和服务器响应时间表来帮助把 COM+ 组件激活请求传递到已实现负载平衡的 COM+ 群集。然后,COM+ 群集成员创建组件并对客户机返回一个接口。组件一经创建,CLB 就不再对其进行更多的操作。

路由列表

路由列表存在于每个 Web 层群集成员上,其中含有需要进行负载平衡的 COM+ 群集成员列表,如图 3 所示。另外,路由列表还存在于一个称为 COM+ 路由群集的位置。这个位置只用于路由,而没有 Web 层功能。本白皮书将重点介绍 Web 层方案。
file:///F:/My%20Work/技术文档/服务器群设置/Microsoft%20Application%20Center%202000%20组件负载平衡技术概述.files/CLBOVR03.gif
图 3 路由列表和响应时间
路由列表最初由 Web 层群集控制器上的管理员创建,然后自动与每个群集成员保持同步。这样一来,就不可能(实际上也不可取)让群集成员具有的路由列表中包含变化的 COM+ 群集成员。在每个 Web 层群集成员上都有路由列表的一大优点是,消除了单点故障。如果某个 Web 层群集成员停止运行(无论是否故意),其它成员将继续通过自己的路由列表对 COM+ 群集进行负载平衡。

响应时间表

每隔 200 毫秒,运行在每个 Web 层群集成员上的 CLB 软件就对自己路由列表中的每个成员进行轮询。自此,就在内存中创建了一个表,其中以响应时间为等级列出了 COM+ 群集成员 — 响应越快的成员在表中的地位就越高。Web 层成员以循环的方式使用响应时间表,以此将接收到的激活请求传递到 COM+ 群集成员。这意味着,当接收到激活请求时,响应最快、最不繁忙的 COM+ 群集成员被首先使用,次快的成员被用来处理下一个请求。响应时间表用完之后,下一个请求将被发送到表中的第一条。就这样依次处理后面的激活请求。这种情形将继续下去,直到对响应时间作了更新为止,并且激活请求被重设到新负载平衡表的开头。
每个 Web 层群集成员都拥有自己的 COM+ 群集成员响应时间表。不要试图在整个 Web 层群集内让这些值保持同步,因为路由列表的复制速度跟不上 COM+ 群集负载的变化。
COM+ 群集
在 Web 层群集内,管理员利用 Application Center 群集创建向导来创建 COM+ 群集。每个群集成员都必须装有相同的 COM+ 组件副本。有一个部署向导可用来安装组件。组件一经创建,就必须知道自己是在 CLB 群集内。
支持群集的 COM+ 组件
为了使用 CLB,必须编写 COM+ 组件来确认它们所处的状况。其关键问题是组件状态。在 COM+ 中,组件不应该保留每个组件的状态信息,因为这样会对可伸缩性和事务管理有负面影响。可伸缩性之所以会受影响,是因为如果组件是有状态的,就无法被重新利用。事务管理之所以会更复杂,是因为每个组件的状态无法穿过事务边界。使用 CLB 时还要考虑其它的因素。从本质上讲,不必担心成员节点的位置,因为在 CLB 群集的任何成员上都可以创建组件。例如在 COM+ 中,全过程存储可以用来存储对服务器上运行的多个组件都有用的信息。在 COM+ 群集内使用这一技术时需要细心的管理,因为无法保证一个组件将在哪个成员上创建。这样一来,后面对于组件的再激活将有可能发生在别的群集成员上。这就使得组件丧失了对前一个成员上的全过程存储的访问权。
组件状态要么应保存为永久状态(如 DBMS),这样可以从任何群集成员访问它;要么应保存在客户机上(如 Cookie 信息就保存在 Internet 客户机上)。
建立组件负载平衡
以下是建立 COM+ 群集所需的步骤。这些步骤基于 Application Center Beta 2 中的功能。

  1. 建立群集
    CLB 需要两个群集。一个群集用于保存路由列表,如前所述,这个群集通常位于 Web 层群集上。另一个群集是 COM+ 群集。请参见联机帮助中的“Creating Cluster”(创建群集)。
  2. 将 COM+ 组件部署到 COM+ 群集上。
    通过使用部署向导,可以将 Application Center 应用程序部署到其它群集上。对于用来将更新后的内容部署到运行群集上的过渡群集,这很有用。请参见图 4。通常,要从一个 stager(过渡服务器)上运行向导,该 stager 拥有打包在 Application Center 应用程序中的 COM+ 组件。请参见联机帮助中的“Synchronizing and Deploying Content”。
    file:///F:/My%20Work/技术文档/服务器群设置/Microsoft%20Application%20Center%202000%20组件负载平衡技术概述.files/CLBOVR04.gif
    图 4 Application Center 中的 stager
    注意 默认情况下,不部署 COM+ 组件,因为组件部署要求重新启动目标 IIS 服务,还可能导致计算机重启。然而,部署向导提供了一种选项,可以强制进行 COM+ 组件部署。
    这样,在组件部署期间避免整个群集宕机就很重要了。这需要进行分阶段部署,让群集成员脱机,更新,然后再联机。有关这个问题的更多信息,请参见 Microsoft Application Center 2000 Resource Kit
  3. 将 COM+ 组件部署到 Web 层群集上
    CLB 要求将 COM+ 组件安装在每个 Web 层群集成员上。同样,可以使用部署向导来完成这件事。可以将 COM+ 组件打包进已部署到 Web 站点的 Application Center 应用程序中。但要记住,COM+ 组件部署将要求重新启动 IIS 服务。所以,为确保 Web 站点总是可用,分段组件部署就很重要。值得注意的另一点是,Web 层群集组件部署需要与 COM+ 群集保持同步。否则,当 Web 站点处于活动状态时,Web 层群集和 COM+ 群集可能装有不同版本的组件。要了解更多的信息,请参见 Microsoft Application Center 2000 Resource Kit
  4. 将 Web 层 COM+ 组件标记为支持 CLB
    Web 层群集上的 COM+ 组件需要被标记为支持 CLB。这要通过 Application Center 管理单元中已有的 Component Services Explorer 来完成。标记组件的方法是在包含它的 COM+ 应用程序中找到它,选择属性页上的 Activation 选项卡,然后选中 Component supports dynamic load balancing 复选框。
  5. 创建路由列表
    路由列表是在 Web 层群集控制器上创建的,并自动在整个 Web 层群集上保持同步。可以通过 Application Center 中的 Web 层群集属性页上的组件 Services 选项卡来添加 COM+ 群集成员列表。

这样就可以了。一旦所有的东西安装完毕,代表客户端运行的 Web 层软件将使用 COM+ 群集内的 COM+ 组件,COM+ 组件的位置不会对此操作有影响。
   

时间: 2024-10-27 07:51:39

转贴:Microsoft Application Center 2000 组件负载平衡技术概述(1)的相关文章

转贴:Microsoft Application Center 2000 组件负载平衡技术概述(2)

application  组件负载平衡应用 下面的说明可使 CLB 得到迅速应用.这些说明假设将用 stager 来将内容部署到 Web 层和 COM+ 群集上.并假定您掌握了有关 Visual Basic.ASP 和 HTML 的实际使用知识. 在 stager 上使用 Visual Basic,创建一个导出以下函数的 COM+ 组件. Public Function GetName() As StringSet WS = CreateObject("wscript.network"

Windows Server 2003网络负载平衡技术的实现方法

在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来http://www.aliyun.com/zixun/aggregation/7432.html">解决问题. 那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法). 一.网络负载平衡的优点 1.网络负载平衡允许你将传入的请求传播到最

新手入门:网络负载平衡技术介绍

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务. 网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应.网络负载平衡对外只须提供一个IP地址(或域名).如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断. 网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客

综述:云计算中的负载平衡技术

EXISTING LOAD BALANCING TECHNIQUES IN CLOUD COMPUTING: A SYSTEMATIC REVIEW NIDHI JAIN KANSAL AND INDERVEER CHANA This study concludes that all the existing techniques mainly focus on reducing associated overhead, service response time and improving p

Microsoft Azure 负载平衡服务 及创建教程

Microsoft Azure 负载平衡服务 Microsoft Azure 为在其中托管的虚拟机 (IaaS) 和云服务 (PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负载平衡服务:通过 Microsoft Azure 门户或应用程序的服务模型指定服务上的输入端点.当在 Microsoft Azure 上部署一个具有一个或多个输入端点的托管服务后,它会自动配置 Microsoft Azure 平台提供的负载平衡服务.要充分

Microsoft Azure提供负载平衡服务应用程序示例

Microsoft http://www.aliyun.com/zixun/aggregation/13357.html">Azure 为在其中托管的虚拟机 (IaaS) 和云服务 (PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负载平衡服务:通过 Microsoft Azure 门户或应用程序的服务模型指定服务上的输入端点.当在 Microsoft Azure 上部署一个具有一个或多个输入端点的托管服务后,它会自动配置

网络负载平衡 Web 服务器(转)

web|服务器|网络 为提高 Web 站点的可靠性,并增加站点容量,我们部署了四个网络负载平衡 (NLB) Web 服务器,这是 Windows 2000 操作系统中两项群集技术中的一种.作为 Windows NT Server 4.0 企业版的 Microsoft Windows NT 负载平衡服务 (WLBS) 的后续产品,NLB 在一个负载平衡群集中可支持多达 32 个节点,并使所有节点如同一个服务器那样进行工作. 下面我们详细讨论这方面的内容. NLB 在由多个提供 TCP/IP 服务的

应用程序负载平衡新风潮

大量远程.分散的,并且时常处于变化的用户基数将引起根本上无法预测的计算需求的浮动,因此需要拥有强力的监控和平衡IT资源的技术能力. 面对不可预测的工作负载,应用程序负载平衡以及应用程序传递控制器改善资源的利用,并加强面向用户的应用程序性能体验. 将精力投入到理解和选择适合的应用程序负载平衡技术,将可在使用最少的IT资源情况下保证高标准的用户体验. 应用程序负载平衡及相关控制技术 借助不同的技术,应用程序负载平衡和应用程序交付控制都能够加强客户端-服务器应用程序的性能. 负载平衡需要专用的硬件或软

使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序

server|web|程序|全文搜索 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序 Andrew B. CenciniMicrosoft Corporation 2002年12月 适用于:    Microsoft SQL Server 2000摘要:学习如何充分利用 SQL Server 2000 的全文搜索功能.本文包含有关实现最大吞吐率和最佳性能的几点提示和技巧. 目录简介 全文搜索功能简介 配置全文搜索功能 全文查询 排位和优化 其他