专利名称:用于意识到内容的负载均衡的系统和方法
技术领域:
本发明大体涉及信息系统,并且更具体地涉及用于在这种信息系 统中进行意识到内容的负栽均衡的技术。
背景技术:
一般说来,信息系统是根据用户的请求对用户提供某种形式的响
应的数据处理系统。因特网或万维网(WWW或"web,,)就是目前存 在的很普及的信息系统。
与因特网相关联的可扩展的网站一般包括一个或多个负栽均衡 器,用于将请求路由到多个服务器。用于负栽均衡这些请求的技术对 整个系统的性能具有相当大的影响。如果请求被以意识到内容的方式 路由,那么负栽均衡器就能够意识到请求的内容并可作出更智能的路 由决定。
与非意识到内容的路由相比,意识到内容的路由的一个缺陷是意 识到内容的路由经常带来相当多的开销。因此,用于执行意识到内容 的路由的好处必须足够多,以为较高的开销辨护。
意识到内容的路由技术已经被提出,例如由V. Pai等人在1998 年10月的ASPLOS-VIII会议记录"在基于集群的网络服务器中意识 到位置的请求分酉己 (Locality-Aware Request Dstribution in Cluster-Based Network Servers )"中描述的那样,其公开内容在此被 结合进来作为参考。然而,在上述网络中公开的意识到内容的路由主 要用于静态请求,因此使用用于选择不总是很好地适用于动态请求的 服务器的技术。在C. S. Yang等人的第二届关于因特网技术和系统的 USENIX/IEEE讨论会(USITS ,99)会议记录"用于在网络服务器集
群中进行基于内容的路由的有效支持(Efficient Support for Content-Based Routing in Web Server Clusters ),,中描述的技术提供 了仅用于静态内容的意识到内容的路由,其公开内容在此被结合进来 作为参考。因此,意识到内容的路由中的现有网络并不能有效处理出 现在主要部署中的数据分区问题。
因此,存在对这样一种技术的需求,该技术能够克服上述提到的 和其他的与现有意识到内容的路由技术相关联的局限性。
发明内容
本发明提供了改善的负栽均衡技术。
例如,在本发明的第一方面,用于在包括多个服务器的系统中满 足请求的方法包括以下步骤。至少一个负栽均衡器被提供用于将请求 路由到所述多个服务器。在该至少一个负栽均衡器处,从客户端发送 的请求被获得。在该至少一个负栽均衡器处,该请求被检查。由所述 多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计 是基于用于满足该请求的至少一个远程访问的数量和成本中的至少 一个的。将该请求路由到所述多个服务器中具有低的估计出的满足该 请求的成本的一个服务器。
所述路由步骤可通过将请求分类到分区中并将该请求路由到掌 管该分区的服务器来完成。在所述提供至少一个负栽均衡器的步骤 中,该至少一个负载均衡器可包括至少一个将请求路由到多个意识到 内容的负栽均衡器的非意识到内容的负载均衡器。此外,在所述提供 至少一个负栽均衡器的步骤中,所述多个意识到内容的负载均衡器中 的至少一个可驻存在所述多个服务器中的至少一个上。
所述估计成本的步骤可进一步包括检查包括在该请求中的至少 一个参数以及使用关于数据如何在所述多个服务器间被分区的信息 来估计用于满足该请求的远程访问的数量和成本中的至少一个的步 骤。所述获取请求的步骤可进一步包括获取使用传输控制协议/因特网 协议被发送的请求,并且所述检查该请求的步骤可进一步包括接受
TCP连接。所述估计成本的步骤可包括估计资源利用率的测量值和用 于满足该请求的期望服务级别中的至少一个。此外,所述估计成本的 步骤可随着服务器数量和时间中的至少一个而变化。而且,在该在所 述至少一个负栽均衡器处获取来自客户端的请求的步骤中,该请求可 包括对动态数据的请求。
在本发明的第二方面,在包括多个服务器的系统中满足请求的方 法包括以下步骤。至少一个负栽均衡器被提供用于将请求路由到所述 多个服务器。在所述至少一个负栽均衡器处,从客户端发送的请求被 获取。在所述至少一个负栽均衡器处,该请求被检查.由所述多个服 务器中的至少两个服务器来满足该请求的成本被估计。在估计步躁中 获取的信息和该请求一起被从该负栽均衡器发送到所述多个服务器 中的一个服务器。在该服务器处,该信息被用来满足该请求。
在本发明的第三方面,用于满足来自至少一个客户端的请求的系 统包括多个服务器、至少 一个用于将请求路由到所述多个服务器的意 识到内容的负栽均衡器、以及至少一个与该至少一个意识到内容的负 栽均衡器相关联的成本分析器,其中所述成本分析器用于基于用于满 足请求的远程访问的数量和成本中的至少 一个来估计由不同服务器 满足请求的成本。
在本发明的第四方面,用于在包括多个服务器的系统中满足来自 至少一个客户端的请求的装置包括存储器和至少一个处理器,该处理
器耦合到该存储器并操作用于(i)获取来自客户端的请求;(ii) 检查该请求的内容;以及(iii)基于估计用于满足该请求的至少一个 远程访问的数量和成本中的至少 一个来估计由所述多个服务器中的 至少两个服务器来满足该请求的成本。然后该请求可以被路由到所述 多个服务器中的具有低的估计出的满足该请求的成本的一个路由器。 在本发明的第五方面,在包括多个服务器的系统中满足来自至少 一个客户端的请求的方法包括以下步骤。从客户端获取请求。该请求 的内容被检查。由所述多个服务器中的至少两个服务器满足该请求的 成本被估计。该估计是基于用于满足该请求的至少一个远程访问的数
量和成本中的至少一个的。然后该请求可以被路由到所述多个服务器 中具有低的估计出的满足该请求的成本的一个服务器。
在本发明的第六方面, 一种用于在包括多个服务器的系统中满足 来自至少一个客户端的请求的制品包括包含有一个或多个程序的机
器可读媒体,该一个或多个程序被执行时实施以下步骤获取来自客
户端的请求,检查该请求的内容,以及基于估计用于满足该请求的至 少一个远程访问的数量和成本中的至少一个来估计由所述多个服务
器中的至少两个服务器来满足该请求的成本。然后该请求可以被路由 到所述多个服务器中具有低的估计出的满足该请求的成本的 一个路 由器。
在本发明的第七方面, 一种提供负栽均衡服务的方法包括服务提 供商向顾客提供服务的步骤,其包括获取来自客户端的请求,检查 该请求的内容,以瓦基于估计用于满足该请求的至少一个远程访问的 数量和成本中的至少一个来估计由所述多个服务器中的至少两个服 务器来满足该请求的成本。然后该请求可以被路由到所述多个服务器 中具有低的估计出的满足该请求的成本的一个服务器。
本发明的这些和其他目的、特征和优点将从以下结合附图阅读的 对本发明说明性实施例的详细描述中变得明显。
图l是根据本发明的一个实施例图示服务器系统架构的图2是根据本发明的一个实施例图示用于分级意识到内容的负 栽均衡器的系统的图3是根据本发明的一个实施例图示其中意识到内容的负载均 衡器与服务器相集成的系统的图4是根据本发明的一个实施例图示用于负载均衡请求的方法
的图5是根据本发明的一个实施例图示用于基于成本选择服务器 的方法的图;以及
图6是根据本发明的一个实施例图示负栽均衡系统的一个或多 个组件/步骤可按照其实施的计算系统的图。
具体实施例方式
本发明将在下面在说明性的基于因特网或web的客户端-服务 器环境的上下文中被解释。然而,应当理解本发明并不局限于这种因 特网或web的实施方式。而应是,本发明更一般性地适用于其中期望 提供增强的负栽均衡性能的任何基于请求的环境中。
此外,响应于请求而将被服务的内容在此一般被称作"对象"。"对 象"可采用多种形式,并且应当理解本发明并不局限于任何特定形式。 例如,对象可以是电子文档,比如一个或多个网页。本领域技术人员 可以以各种不同的电子文档格式使用本发明,其中该文档格式包括但 不局限于HTML (超文本标记语言)文档、XML (可扩展标记语言) 文档、其他格式的文本文档、以及二进制文档。同样,短语"电子文 档"也应被理解为包括文本数据、二进制数据、 一个或多个字节流等 等中的一个或多个。因此,本发明并不局限于数据对象的任何特定类 型。而且,应当理解术语"开销,,可包括但不局限于计算机CPU(中央 处理单元)循环、网络带宽消耗、盘、I/O (输入/输出)等等。
首先参考图1,图示了一种根据本发明一个实施例的一种服务器 系统架构。如图所示, 一个或多个客户端(例如102-1......102-M)
发送一个或多个请求到服务器系统103。应当明白客户端(仅作为示 例,可以是个人计算机、个人数字助理、蜂窝电话等等)可经由因特 网或一些其他有线和/或无线通信网络被耦合到服务器系统103。本发 明并不局限于任何特定的通信网络。同样,应当理解术语"请求"并不 仅仅局限于对从该服务器系统返回数据内容的请求。根据特定应用, 请求可具有不同目的和/或寻求不同结果。本发明并不局限于任何特定 类型的请求。
服务器系统103包括负栽均衡器104、成本分析器106、以及多 个服务器108-1......108-N。成本分析器106协助负栽均衡器104
确定请求应当被路由到所述多个服务器中的哪一个。该负载均衡器可
以是意识到内容的。换句话说,负载均衡器104可具有确定请求的内 容的能力以作出更智能的路由决定。
意识到内容的负载均衡器比非意识到内容的负载均衡器在处理 请求中会带来多得多的开销。例如,如果通信经由传输控制协议/因特 网协议(TCP/IP)发生,那么意识到内容的负载均衡器一般会接受 TCP连接以检查请求的内容。该步猓带来可观的开销并且一般是非意 识到内容的负栽均衡器所不需要的。
本发明的原理提供了按比例增加意识到内容的负栽均衡器的特 征以处理高请求率。图2描述了这一特征。
现在参考图2,其根据本发明一个实施例图示了用于扩张意识到 内容的负载均衡器的系统。如图所示,服务器系统202包括非意识到 内容的负栽均衡器204和多个意识到内容的负栽均衡器206 -1......206-P。
从一个或多个客户端(未示出)接收到的请求初始被路由到非意 识到内容的负载均衡器204,然后非意识到内容的负载均衡器204将 请求路由到所述多个意识到内容的负载均衡器206-1......206-P中
的一个或多个。意识到内容的负栽均衡器比任何一个单独的意识到内 容的负栽均衡器具有更高的吞吐量。非意识到内容的负载均衡器可使 用各种方案来发送请求到意识到内容的负栽均衡器,包括但不局限于 循环法或考虑到意识到内容的负栽均衡器上的负栽的方法。
现在参考图3,其描述了图2的一般性,其中意识到内容的负栽 均衡器被集成于(例如,驻存于) 一个或多个服务器。也就是,如图 所示,服务器系统302包括非意识到内容的负栽均衡器304和分别集 成于多个服务器308-1......308-R的多个意识到内容的负栽均衡器
306-1......306-R。
现在参考图4,其根据本发明的一个实施例图示了用于负栽均衡 请求的方法400。图1的服务器系统架构将被参考以说明方法400的 步骤。然而,应当明白也可以使用其他服务器系统架构(例如,在图
2和3中所显示的,以及其他没有明确显示的)。
在步骤402,负载均衡器(例如图1中的104)接收请求。在步 骤404,成本分析器(例如图1中的106)检查该请求并识别将有可 能带来较低的用于满足该请求的成本的服务器(例如108-1......108
-N)。在步骤406,该请求被路由到步骤404中所识别的服务器。
步骤404可以通过多种方式来实施。图5描述了一种说明性方法。
现在参考图5,其根据本发明的一个实施例图示了用于基于成本 选择服务器的方法500。在步骤502,该请求被检查。如果正在使用 TCP/IP进行通信,那么步骤502可以包括接受TCP连接。该请求可 包含一个或多个参数。
在一个实施例中,数据在服务器108-1......108 - N间被非对称
分区。用于处理请求的合适的服务器依赖于该请求。例如,假设数据 基于名称参数被分区。如果有三个服务器,那么一个服务器可处理以 A到I开头的名称,第二服务器可处理以J到R开头的名称,而第三 服务器可处理以S到Z开头的名称。
当请求被该负载均衡器接收时(例如,图4的步骤402),在上 述情景中,对应于该请求的参数将包含该名称。例如,如果名称为 "Smith",那么该请求将被路由到第三服务器。如果该名称为"Jones", 那么该请求将被路由到第二服务器。
在另一个情景中,数据在服务器(108-1......108-N)间以更
复杂的方式被分区。被路由到服务器的请求根据该请求如何被路由可 导致对非本地数据的多种不同访问。对于"非本地",其意为所寻求的 数据并不存储在最初接收该请求的服务器上,而是存储在距离该服务 器远程的服务器或其他网络元件上。例如,如果该请求被路由到笫一 服务器,这将导致三个远程访问。如果该请求被路由到第二服务器, 这将导致一个远程访问。如果该请求被路由到第三服务器,这将导致 八个远程访问。这些判决可在步骤504中基于该请求的内容被作出。
应当明白本发明区别于比如上面提到的ASPLOS-VIII和 USITS,99文件的现有技术的一个特征(但并不是唯一的特征),是
本发明的技术既可用于对动态数据的请求也可用于对静态数据的请 求。作为对比,上面参考的文件描述了意识到内容的路由技术,其仅 适用于静态数据。对静态数据的请求是对数据的请求,该数据比如文 件,其存在于作出请求的时候。对动态数据的请求是其中程序代码被 执行以满足该请求的请求。例如,在电子商务网站订购物品一般被实 施为至少一个动态请求。该订购可导致多个数据库访问,在服务器处
的持续状态改变,以及响应于该订购无线(on-the-fly)产生的并被发 回到该客户端的确认。
满足动态请求一般比满足静态请求复杂得多。用于动态请求的开 销也通常高得多.因此,用于选择服务器的本发明的方法不同于那些 已经提出的用于选择用于静态内容的服务器的方法。
应用可被分析以确定如何使其能够被最好地分区以运行在一组 服务器上。分区经常被定义为与其他分区很少有交互,并且因此需要 被分享的状态被最小化。逻辑上,每个分区可被关联于计算任务的一 部分,该计算任务的一部分可包括用于处理请求的特定组的代码和状 态。
分区可以通过分析该应用的商业逻辑而被静态完成。这些分区可 在运行时基于在线工作负栽统计进一步被精简。因此,成本分析器不 仅优选地意识到初始分区,而且也可实施对该应用进行在线重分区的 逻辑。
成本分析器可查看该应用的整体情况以确定如何对该应用进行 分区以最小化处理特定请求组的成本。处理请求的成本一般包括中央 处理单元(CPU)开销还有同步可能由多个后端服务器共享的底层 (underlying)状态的通信开销。因此,成本分析器还可确定一条数 据应在多广泛的范围内被复制。虽然广泛地复制一条数据可能增加处 理与该份数据相关联的请求的整体能力,但其也会增加在所有副本中 同步该数据的成本。因此,所期望的是成本分析器能够均衡数据的一 致性需求、请求速率和同步模式。
相反,成本分析器也可考虑不复制数据。将对特定数据的请求路
由到服务于所述数据的一个或几个服务器以避免数据复制成本可能 是更有利的。此外, 一组服务器的总高速緩存能力可被更好地利用。 例如,构成服务器组的每个都同样能够服务于任何一个请求的三个服 务器中的每一 个由于大小限制在任何一 个时间都只能高速緩存三个 经常使用的大对象中的一个。成本分析器可以选择在服务器1上放置
大对象A,在服务器2上放置大对象B,以及在服务器3上放置大对 象C。接下来,对每个对象的请求可根据其高速緩存位置被路由到服 务器。在本例中,每一个大对象能够被高速緩存在至少一个服务器上, 这导致总体性能的改善。因此,成本分析器通过才艮据请求内容作出关 于对服务的请求以及在哪里对其服务的智能决定来提高应用的水平 可扩性。
由服务器保存的底层数据在请求路由能够被改变前可能需要被 移植。移植底层数据通常带来成本。因此,成本分析器还可把状态移 植的成本考虑到优化路由当中。
因为远程访问是耗费成本的,所以所期望的是将其最小化。在步 骤506,该系统基于在步骤504确定的成本选择一个将请求路由到的 服务器。在前面段落的例子中,第二服务器一般会是所选择的那个服 务器,因为其只需要一个远程访问。然而,如果该第二服务器相比于 第 一服务器来说具有更高的负栽,那么在特定情况中将选择笫 一服务
当在步骤504中,该系统确定将请求路由到不同服务器的成本 时,该确定不一定必须是完全准确的。在许多情况下,估计就足够了。 在执行该确定时,该系统可执行确定该请求的参数、哪些服务器需要 被联系以满足该请求、或能够帮助满足该请求的其他信息的代码。一 种直接的方法是由成本分析器确定一次该信息以及由该请求被路由 到的服务器第二次确定该信息。该方法因为冗余计算而带来开销。减 轻这些冗余计算的一种优化是由成本分析器存储该请求中的相关信 息并发送扩张的请求到服务器。然后该服务器访问由成本分析器存储 在扩张的请求中的信息以获取用于满足该请求并避免冗余计算的相
关信息。编译器能够对程序代码执行程序转换技术以满足该请求来完 全或部分地使该优化自动进行。
成本分析器可考虑分区定义、分区到服务器指派、以及期望优化。
分区定义是将请求分类到分区中的过程。分区到服务器指派是决定所 分类的请求将在哪个服务器上被处理(换句话说,分区将在放置在哪 个服务器上)的过程。期望优化考虑的是如何在可用的服务器间最好 地分配分区。独立分区可根据需要被从一个服务器移动到另一个。
成本分析器可对每一个控制变量作出动态决定。例如,成本分析
器对系统利用率的离线分析可推荐不同的分类到分区方案中;或推荐 分区的不同分配给服务器。此外,成本分析结果对于服务器组中变化 数量的服务器可以是不同的,并且可随着时间变化。
对于变化数量的服务器, 一个分区到服务器分配方案可能对两个 服务器是优化的,而另一个对三个服务器是优化的,另一个对四个服
务器是优化的,等等。例如,比方说分区被命名为{0,1,2,3,...9}。对于 两个服务器,成本分析可确定优化指派是分区0 - 6被指派到服务器1 , 而7-9被指定到服务器2。对于三个服务器,成本分析器可推荐分区 0 - 3被指派到服务器1,分区4 - 7被指派到服务器2以及分区8-9 被指派到服务器3。
随着时间的变化,所期望的成本优化函数可在8AM到5PM期 间指定分区到服务器的一种指派,而在5PM到8AM期间指定另一种 指派。
从系统的观点出发,成本分析器不需要对资源的"最佳"利用率进 行优化。 一种简单的利用系统的服务请求负栽均衡技术是将请求循环 (round robin)到服务器组中的每一个;或选择具有最少利用的CPU 的服务器。可替换地,成本分析器可将请求分类并基于所述分类结果 将其路由,尽管从系统的观点出发,这可能不是"最佳,,利用率下的结果。
成本分析可考虑服务需求的质量。例如,"金"顾客可被引导到 "快"速分区,"银"顾客可被引导到"中"速分区,而"铜"顾客可被引导
到"慢"速分区。也就是,成本分析器不总是寻求从系统的观点出发来 进行优化,而是相对于请求的重要性来进行优化。
还应明白本发明还包括用于提供负载均衡服务的技术。作为示 例,内容提供商与顾客或客户达成协议(例如,经由服务级别协定或 某些非正式协定或商定)以提供内容。然后,基于内容提供商和该内 容顾客之间的服务合同的条款,内容提供商根据在此所描述的本发明 的一个或多个负载均衡方法为内容顾客提供内容。
最后参考图6,其根据本发明的一个实施例图示了可按照其实施 负栽均衡系统的一个或多个组件/步稞(例如,在图l至5的情境中描 述的组件和方法)的计算系统。应当明白单独的组件/步骤可被实施在 一个这种计算机系统上,或更优选地,实施在多于一个这种计算机系 统上。在分布式计算系统上实施的情况下,单独的计算机系统和/或设 备可经由合适的网络被连接,合适的网络例如是因特网或万维网。然 而,该系统可以经由专用或本地网络来实现。本发明并不局限于任何 特定网络。
因此,图6中显示的计算系统表示了用于负栽均衡器、服务器、 成本分析器、和/或其组合的说明性计算系统架构,本发明的负栽均衡 技术的一个或多个步骤可在其中被执行。
如图所示,该计算机系统600可被按照经由计算机总线610或可 选连接设置被连接的处理器602、存储器604、 I/O设备606、以及网 络接口 608来实施。
应当理解这里使用的术语"处理器,,意为包括任何处理设备,比如 包括CPU和/或其他处理电路的设备。还应理解术语"处理器"可以涉 及多于一个的处理设备并且与处理设备相关联的各种元件可被其他 处理设备共享。
这里使用的术语"存储器"意为包括与处理器或CPU相关联的存 储器,比如RAM、 ROM、固定存储器设备(例如硬盘)、可移除存 储器设备(例如盘片)、闪存等等。
此外,这里使用的短语"输入/输出设备"或"I/0设备"意为包括例
如一个或多个用于输入数据到处理单元的输入设备(例如键盘、鼠标 等等),和/或一个或多个用于呈现与处理单元相关联的结果的输出设 备(例如扬声器、显示器等等)。
而且,这里使用的短语"网络接口 "意为包括例如一个或多个收发 信机以允许计算机系统经由合适的通信协议与另一个计算机系统进 行通信。
因此,包括用于执行这里所描述的方法的指令或代码的软件组件
可被存储在一个或多个相关的存储器设备(例如,ROM、固定或可 移除存储器)中,并且当准备好被利用时,被部分或全部加栽(例如 到RAM中)并由CPU执行。
尽管本发明的说明性实施例已经在此参照附图被描述,但应理解 本发明并不局限于那些准确的实施例,并且各种其他改变和修改可以 由本领域技术人员在不脱离本发明的精神或范围的情况下作出。
权利要求
1.一种方法,用于在包括多个服务器的系统中满足请求,该方法包括步骤提供至少一个用于将请求路由到所述多个服务器的负载均衡器;在所述至少一个负载均衡器处获取来自客户端的请求;在所述至少一个负载均衡器处检查该请求;基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器满足该请求的成本;以及将该请求路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器。
2. 如权利要求l所述的方法,其中所述路由步骤是通过将请求 分类到分区中并将该请求路由到掌管该分区的服务器来完成的。
3. 如权利要求l所述的方法,其中在所述提供至少一个负栽均 衡器的步骤中,该至少一个负栽均衡器包括至少一个将请求路由到多 个意识到内容的负栽均衡器的非意识到内容的负栽均衡器。
4. 如权利要求3所述的方法,其中在所述提供至少一个负载均 衡器的步骤中,所述多个意识到内容的负载均衡器中的至少一个驻存 在所述多个服务器中的至少一个上。
5. 如权利要求l所述的方法,其中所述估计成本的步骤进一步 包括步骤检查包括在该请求中的至少一个参数;以及 使用关于数据在所述多个服务器间如何被分区的信息来估计用 于满足该请求的远程访问的数量和成本中的至少一个。
6. 如权利要求l所述的方法,其中所述获取请求的步骤进一步 包括获取使用传输控制协议/因特网协议发送的请求,并且其中所述检 查步骤进一步包括接受TCP连接。
7. 如权利要求l所述的方法,其中所述估计成本的步骤包括估 计用于满足该请求的期望服务级别的资源利用率的测量值中的至少 一个。
8. 如权利要求l所述的方法,其中所述估计成本的步骤可随着 服务器数和时间中的至少 一个而变化。
9. 如权利要求l所述的方法,其中在所述在所述至少一个负栽 均衡器处获取来自客户端的请求的步骤中,该请求包括对动态数据的 请求。
10. —种在包括多个服务器的系统中满足请求的方法,该方法包 括步骤提供至少一个用于将请求路由到所述多个服务器的负栽均衡器; 在所述至少一个负栽均衡器处获取来自客户端的请求; 在所述至少一个负栽均衡器处检查该请求; 估计由所述多个服务器中的至少两个服务器满足该请求的成本;从该负栽均衡器将在所述估计步骤中所获取的信息连同该请求 一起发送到所述多个服务器中的服务器;以及 在所述服务器处使用该信息来满足该请求。
11. 一种系统,用于满足来自至少一个客户端的请求,该系统包括多个服务器;至少一个意识到内容的负载均衡器,用于将请求路由到所述多个 服务器;以及与所述至少一个意识到内容的负栽均衡器相关联的至少一个成 本分析器,其基于用于满足请求的远程访问的数量和成本中的至少一 个来估计由不同服务器来满足请求的成本。
12. 如权利要求11所述的系统,其中该至少一个意识到内容的 负载均衡器包括多个意识到内容的负栽均衡器,并且其中该系统进一 步包括至少一个非意识到内容的负载均衡器,其用于将请求路由到所 述多个意识到内容的负载均衡器。
13. 如权利要求12所述的系统,其中所述多个意识到内容的负 栽均衡器中的至少一个驻存在所述多个服务器的至少一个上。
14. 如权利要求11所述的系统,其中请求通过将该请求分类到 分区中并将该请求路由到掌管该分区的服务器而被路由。
15. 如权利要求11所述的系统,其中所述至少一个成本分析器 通过检查包括在该请求中的至少一个参数,并使用关于数据在所述多 个服务器间如何被分区的信息来估计用于满足该请求的远程访问的 数量和成本中的至少一个来估计成本。
16. 如权利要求11所述的系统,其中请求使用传输控制协议/ 因特网协议^L送,并且当检查该请求时,接受TCP连接。
17. 如权利要求ll所述的系统,其中该至少一个成本分析器估 计用于满足该请求的期望服务级别和资源利用率的测量值中的至少 一个。
18. 如权利要求11所述的系统,其中估计成本的过程可随着服 务器数和时间中的至少一个而变化。
19. 一种用于在包括多个服务器的系统中满足来自至少一个客户 端的请求的装置,该装置包括存储器;以及至少一个处理器,耦合到该存储器并操作用于(i)获取来自 客户端的请求;(ii)检查该请求的内容;以及(iii)基于估计用于 满足该请求的至少一个远程访问的数量和成本中的至少一个来估计 由所述多个服务器中的至少两个服务器满足该请求的成本。
20. —种方法,用于在包括多个服务器的系统中满足来自至少一 个客户端的请求,该方法包括步猓获取来自客户端的请求;检查该请求的内容;以及基于估计用于满足该请求的至少一个远程访问的数量和成本中 的至少 一个来估计由所述多个服务器中的至少两个服务器满足该请 求的成本。
21. —种制品,用于在包括多个服务器的系统中满足来自至少一 个客户端的请求,该制品包括包含有一个或多个程序的机器可读媒体,其中当该一个或多个程序被执行时实施步骤获取来自客户端的请求;检查该请求的内容;以及基于估计用于满足该请求的至少 一个远程访问的数量和成本中 的至少 一个来估计由所述多个服务器中的至少两个服务器满足该请 求的成本。
22. —种方法,用于提供负栽均衡服务,该方法包括步骤 向顾客提供服务的服务提供商,所述向顾客提供服务的动作包括获取来自客户端的请求; 检查该请求的内容;以及基于估计用于满足该请求的至少一个远程访问的数量和 成本中的至少 一个来估计由所述多个JI艮务器中的至少两个服务 器满足该请求的成本。
全文摘要
公开了改善的负载均衡技术。例如,在本发明的一个示例性方面,一种在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在该至少一个负载均衡器处,从客户端发送的请求被获取。在该至少一个负载均衡器处,检查该请求。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个。该请求被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个。
文档编号H04L29/06GK101116056SQ200680004598
公开日2008年1月30日 申请日期2006年3月29日 优先权日2005年3月31日
发明者鉴 殷, 路易斯·德根内拉罗, 阿拉恩·K.·埃延加, 磊 高 申请人:国际商业机器公司