首页> 中国专利> 用于意识到内容的负载均衡的系统和方法

用于意识到内容的负载均衡的系统和方法

摘要

公开了改善的负载均衡技术。例如,在本发明的一个示例性方面,一种在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在该至少一个负载均衡器处,从客户端发送的请求被获取。在该至少一个负载均衡器处,检查该请求。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个。该请求被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-05-22

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20100519 终止日期:20120329 申请日:20060329

    专利权的终止

  • 2010-05-19

    授权

    授权

  • 2008-03-19

    实质审查的生效

    实质审查的生效

  • 2008-01-30

    公开

    公开

说明书

技术领域

本发明大体涉及信息系统,并且更具体地涉及用于在这种信息系统中进行意识到内容的负载均衡的技术。

背景技术

一般说来,信息系统是根据用户的请求对用户提供某种形式的响应的数据处理系统。因特网或万维网(WWW或“web”)就是目前存在的很普及的信息系统。

与因特网相关联的可扩展的网站一般包括一个或多个负载均衡器,用于将请求路由到多个服务器。用于负载均衡这些请求的技术对整个系统的性能具有相当大的影响。如果请求被以意识到内容的方式路由,那么负载均衡器就能够意识到请求的内容并可作出更智能的路由决定。

与非意识到内容的路由相比,意识到内容的路由的一个缺陷是意识到内容的路由经常带来相当多的开销。因此,用于执行意识到内容的路由的好处必须足够多,以为较高的开销辩护。

意识到内容的路由技术已经被提出,例如由V.Pai等人在1998年10月的ASPLOS-VIII会议记录“在基于集群的网络服务器中意识到位置的请求分配(Locality-Aware Req uest Dstribution inCluster-Based Network Servers)”中描述的那样,其公开内容在此被结合进来作为参考。然而,在上述网络中公开的意识到内容的路由主要用于静态请求,因此使用用于选择不总是很好地适用于动态请求的服务器的技术。在C.S.Yang等人的第二届关于因特网技术和系统的USENIX/IEEE讨论会(USITS’99)会议记录“用于在网络服务器集群中进行基于内容的路由的有效支持(Efficient Support forContent-Based Routing in Web Server Clusters)”中描述的技术提供了仅用于静态内容的意识到内容的路由,其公开内容在此被结合进来作为参考。因此,意识到内容的路由中的现有网络并不能有效处理出现在主要部署中的数据分区问题。

因此,存在对这样一种技术的需求,该技术能够克服上述提到的和其他的与现有意识到内容的路由技术相关联的局限性。

发明内容

本发明提供了改善的负载均衡技术。

例如,在本发明的第一方面,用于在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在该至少一个负载均衡器处,从客户端发送的请求被获得。在该至少一个负载均衡器处,该请求被检查。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计是基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个的。将该请求路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。

所述路由步骤可通过将请求分类到分区中并将该请求路由到掌管该分区的服务器来完成。在所述提供至少一个负载均衡器的步骤中,该至少一个负载均衡器可包括至少一个将请求路由到多个意识到内容的负载均衡器的非意识到内容的负载均衡器。此外,在所述提供至少一个负载均衡器的步骤中,所述多个意识到内容的负载均衡器中的至少一个可驻存在所述多个服务器中的至少一个上。

所述估计成本的步骤可进一步包括检查包括在该请求中的至少一个参数以及使用关于数据如何在所述多个服务器间被分区的信息来估计用于满足该请求的远程访问的数量和成本中的至少一个的步骤。所述获取请求的步骤可进一步包括获取使用传输控制协议/因特网协议被发送的请求,并且所述检查该请求的步骤可进一步包括接受TCP连接。所述估计成本的步骤可包括估计资源利用率的测量值和用于满足该请求的期望服务级别中的至少一个。此外,所述估计成本的步骤可随着服务器数量和时间中的至少一个而变化。而且,在该在所述至少一个负载均衡器处获取来自客户端的请求的步骤中,该请求可包括对动态数据的请求。

在本发明的第二方面,在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在所述至少一个负载均衡器处,从客户端发送的请求被获取。在所述至少一个负载均衡器处,该请求被检查。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。在估计步骤中获取的信息和该请求一起被从该负载均衡器发送到所述多个服务器中的一个服务器。在该服务器处,该信息被用来满足该请求。

在本发明的第三方面,用于满足来自至少一个客户端的请求的系统包括多个服务器、至少一个用于将请求路由到所述多个服务器的意识到内容的负载均衡器、以及至少一个与该至少一个意识到内容的负载均衡器相关联的成本分析器,其中所述成本分析器用于基于用于满足请求的远程访问的数量和成本中的至少一个来估计由不同服务器满足请求的成本。

在本发明的第四方面,用于在包括多个服务器的系统中满足来自至少一个客户端的请求的装置包括存储器和至少一个处理器,该处理器耦合到该存储器并操作用于:(i)获取来自客户端的请求;(ii)检查该请求的内容;以及(iii)基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本。然后该请求可以被路由到所述多个服务器中的具有低的估计出的满足该请求的成本的一个路由器。

在本发明的第五方面,在包括多个服务器的系统中满足来自至少一个客户端的请求的方法包括以下步骤。从客户端获取请求。该请求的内容被检查。由所述多个服务器中的至少两个服务器满足该请求的成本被估计。该估计是基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个的。然后该请求可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。

在本发明的第六方面,一种用于在包括多个服务器的系统中满足来自至少一个客户端的请求的制品包括包含有一个或多个程序的机器可读媒体,该一个或多个程序被执行时实施以下步骤:获取来自客户端的请求,检查该请求的内容,以及基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本。然后该请求可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个路由器。

在本发明的第七方面,一种提供负载均衡服务的方法包括服务提供商向顾客提供服务的步骤,其包括:获取来自客户端的请求,检查该请求的内容,以及基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本。然后该请求可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。

本发明的这些和其他目的、特征和优点将从以下结合附图阅读的对本发明说明性实施例的详细描述中变得明显。

附图说明

图1是根据本发明的一个实施例图示服务器系统架构的图;

图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,其根据本发明的一个实施例图示了可按照其实施负载均衡系统的一个或多个组件/步骤(例如,在图1至5的情境中描述的组件和方法)的计算系统。应当明白单独的组件/步骤可被实施在一个这种计算机系统上,或更优选地,实施在多于一个这种计算机系统上。在分布式计算系统上实施的情况下,单独的计算机系统和/或设备可经由合适的网络被连接,合适的网络例如是因特网或万维网。然而,该系统可以经由专用或本地网络来实现。本发明并不局限于任何特定网络。

因此,图6中显示的计算系统表示了用于负载均衡器、服务器、成本分析器、和/或其组合的说明性计算系统架构,本发明的负载均衡技术的一个或多个步骤可在其中被执行。

如图所示,该计算机系统600可被按照经由计算机总线610或可选连接设置被连接的处理器602、存储器604、I/O设备606、以及网络接口608来实施。

应当理解这里使用的术语“处理器”意为包括任何处理设备,比如包括CPU和/或其他处理电路的设备。还应理解术语“处理器”可以涉及多于一个的处理设备并且与处理设备相关联的各种元件可被其他处理设备共享。

这里使用的术语“存储器”意为包括与处理器或CPU相关联的存储器,比如RAM、ROM、固定存储器设备(例如硬盘)、可移除存储器设备(例如盘片)、闪存等等。

此外,这里使用的短语“输入/输出设备”或“I/O设备”意为包括例如一个或多个用于输入数据到处理单元的输入设备(例如键盘、鼠标等等),和/或一个或多个用于呈现与处理单元相关联的结果的输出设备(例如扬声器、显示器等等)。

而且,这里使用的短语“网络接口”意为包括例如一个或多个收发信机以允许计算机系统经由合适的通信协议与另一个计算机系统进行通信。

因此,包括用于执行这里所描述的方法的指令或代码的软件组件可被存储在一个或多个相关的存储器设备(例如,ROM、固定或可移除存储器)中,并且当准备好被利用时,被部分或全部加载(例如到RAM中)并由CPU执行。

尽管本发明的说明性实施例已经在此参照附图被描述,但应理解本发明并不局限于那些准确的实施例,并且各种其他改变和修改可以由本领域技术人员在不脱离本发明的精神或范围的情况下作出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号