CN101116056B - 用于意识到内容的负载均衡的系统和方法 - Google Patents
用于意识到内容的负载均衡的系统和方法 Download PDFInfo
- Publication number
- CN101116056B CN101116056B CN200680004598.5A CN200680004598A CN101116056B CN 101116056 B CN101116056 B CN 101116056B CN 200680004598 A CN200680004598 A CN 200680004598A CN 101116056 B CN101116056 B CN 101116056B
- Authority
- CN
- China
- Prior art keywords
- request
- server
- cost
- servers
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1017—Server selection for load balancing based on a round robin mechanism
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
Abstract
公开了改善的负载均衡技术。例如,在本发明的一个示例性方面,一种在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在该至少一个负载均衡器处,从客户端发送的请求被获取。在该至少一个负载均衡器处,检查该请求。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个。该请求被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个。
Description
技术领域
本发明大体涉及信息系统,并且更具体地涉及用于在这种信息系统中进行意识到内容的负载均衡的技术。
背景技术
一般说来,信息系统是根据用户的请求对用户提供某种形式的响应的数据处理系统。因特网或万维网(WWW或“web”)就是目前存在的很普及的信息系统。
与因特网相关联的可扩展的网站一般包括一个或多个负载均衡器,用于将请求路由到多个服务器。用于负载均衡这些请求的技术对整个系统的性能具有相当大的影响。如果请求被以意识到内容的方式路由,那么负载均衡器就能够意识到请求的内容并可作出更智能的路由决定。
与非意识到内容的路由相比,意识到内容的路由的一个缺陷是意识到内容的路由经常带来相当多的开销。因此,用于执行意识到内容的路由的好处必须足够多,以为较高的开销辩护。
意识到内容的路由技术已经被提出,例如由V.Pai等人在1998年10月的ASPLOS-VIII会议记录“在基于集群的网络服务器中意识到位置的请求分配(Locality-Aware Request Dstribution inCluster-Based Network Servers)”中描述的那样,其公开内容在此被结合进来作为参考。然而,在上述网络中公开的意识到内容的路由主要用于静态请求,因此使用用于选择不总是很好地适用于动态请求的服务器的技术。在C.S.Yang等人的第二届关于因特网技术和系统的USENIX/IEEE讨论会(USITS’99)会议记录“用于在网络服务器集群中进行基于内容的路由的有效支持(Efficient Support forContent-Based Routing in Web Server Clusters)”中描述的技术提供了仅用于静态内容的意识到内容的路由,其公开内容在此被结合进来作为参考。因此,意识到内容的路由中的现有网络并不能有效处理出现在主要部署中的数据分区问题。
因此,存在对这样一种技术的需求,该技术能够克服上述提到的和其他的与现有意识到内容的路由技术相关联的局限性。
发明内容
本发明提供了改善的负载均衡技术。
例如,在本发明的第一方面,用于在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在该至少一个负载均衡器处,从客户端发送的请求被获得。在该至少一个负载均衡器处,该请求被检查。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。该估计是基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个的。将该请求和帮助满足该请求的信息路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。其中所述具有低的所估计的满足该请求的成本的服务器访问所述帮助满足该请求的信息
所述路由步骤可通过将请求分类到分区中并将该请求路由到掌管该分区的服务器来完成。在所述提供至少一个负载均衡器的步骤中,该至少一个负载均衡器可包括至少一个将请求路由到多个意识到内容的负载均衡器的非意识到内容的负载均衡器。此外,在所述提供至少一个负载均衡器的步骤中,所述多个意识到内容的负载均衡器中的至少一个可驻存在所述多个服务器中的至少一个上。
所述估计成本的步骤可进一步包括检查包括在该请求中的至少一个参数以及使用关于数据如何在所述多个服务器间被分区的信息来估计用于满足该请求的远程访问的数量和成本中的至少一个的步骤。所述获取请求的步骤可进一步包括获取使用传输控制协议/因特网协议被发送的请求,并且所述检查该请求的步骤可进一步包括接受TCP连接。所述估计成本的步骤可包括估计资源利用率的测量值和用于满足该请求的期望服务级别中的至少一个。此外,所述估计成本的步骤可随着服务器数量和时间中的至少一个而变化。而且,在该在所述至少一个负载均衡器处获取来自客户端的请求的步骤中,该请求可包括对动态数据的请求。
在本发明的第二方面,在包括多个服务器的系统中满足请求的方法包括以下步骤。至少一个负载均衡器被提供用于将请求路由到所述多个服务器。在所述至少一个负载均衡器处,从客户端发送的请求被获取。在所述至少一个负载均衡器处,该请求被检查。由所述多个服务器中的至少两个服务器来满足该请求的成本被估计。在估计步骤中获取的信息和该请求一起被从该负载均衡器发送到所述多个服务器中的一个服务器。在该服务器处,该信息被用来满足该请求。
在本发明的第三方面,用于满足来自至少一个客户端的请求的系统包括多个服务器、至少一个用于将请求路由到所述多个服务器的意识到内容的负载均衡器、以及至少一个与该至少一个意识到内容的负载均衡器相关联的成本分析器,其中所述成本分析器用于基于用于满足请求的远程访问的数量和成本中的至少一个来估计由不同服务器满足请求的成本。其中所述意识到内容的负载均衡器将请求以及满足该请求的信息路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器;并且其中所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
在本发明的第四方面,用于在包括多个服务器的系统中满足来自至少一个客户端的请求的装置:被配置为获取来自客户端的请求的装置;被配置为检查该请求的内容的装置;以及被配置为基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本的装置。然后该请求以及满足该请求可以被路由到所述多个服务器中的具有低的估计出的满足该请求的成本的一个路由器。所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
在本发明的第五方面,在包括多个服务器的系统中满足来自至少一个客户端的请求的方法包括以下步骤。从客户端获取请求。该请求的内容被检查。由所述多个服务器中的至少两个服务器满足该请求的成本被估计。该估计是基于用于满足该请求的至少一个远程访问的数量和成本中的至少一个的。然后该请求以及满足该请求的信息可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
在本发明的第六方面,一种用于在包括多个服务器的系统中满足来自至少一个客户端的请求的制品包括包含有一个或多个程序的机器可读媒体,该一个或多个程序被执行时实施以下步骤:获取来自客户端的请求,检查该请求的内容,以及基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本。然后该请求和满足该请求的信息可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个路由器。所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
在本发明的第七方面,一种提供负载均衡服务的方法包括服务提供商向顾客提供服务的步骤,其包括:获取来自客户端的请求,检查该请求的内容,以及基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器来满足该请求的成本。然后该请求和满足该请求的信息可以被路由到所述多个服务器中具有低的估计出的满足该请求的成本的一个服务器。所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
本发明的这些和其他目的、特征和优点将从以下结合附图阅读的对本发明说明性实施例的详细描述中变得明显。
附图说明
图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执行。
尽管本发明的说明性实施例已经在此参照附图被描述,但应理解本发明并不局限于那些准确的实施例,并且各种其他改变和修改可以由本领域技术人员在不脱离本发明的精神或范围的情况下作出。
Claims (21)
1.一种方法,用于在包括多个服务器的系统中满足请求,该方法包括步骤:
提供至少一个用于将请求路由到所述多个服务器的负载均衡器;
在所述至少一个负载均衡器处获取来自客户端的请求;
在所述至少一个负载均衡器处检查该请求;
基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器满足该请求的成本;以及
将帮助满足该请求的信息存储在扩张的请求中,将该扩张的请求路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器;
其中所述具有低的所估计的满足该请求的成本的服务器访问存储在扩张的请求中的所述帮助满足该请求的信息。
2.如权利要求1所述的方法,其中所述路由步骤是通过将请求分类到分区中并将该请求路由到掌管该分区的服务器来完成的。
3.如权利要求1所述的方法,其中在所述提供至少一个负载均衡器的步骤中,该至少一个负载均衡器包括至少一个将请求路由到多个意识到内容的负载均衡器的非意识到内容的负载均衡器。
4.如权利要求3所述的方法,其中在所述提供至少一个负载均衡器的步骤中,所述多个意识到内容的负载均衡器中的至少一个驻存在所述多个服务器中的至少一个上。
5.如权利要求1所述的方法,其中所述估计成本的步骤进一步包括步骤:
检查包括在该请求中的至少一个参数;以及
使用关于数据在所述多个服务器间如何被分区的信息来估计用于满足该请求的远程访问的数量和成本中的至少一个。
6.如权利要求1所述的方法,其中所述获取请求的步骤进一步包括获取使用传输控制协议/因特网协议发送的请求,并且其中所述检查步骤进一步包括接受TCP连接。
7.如权利要求1所述的方法,其中所述估计成本的步骤包括估计用于满足该请求的期望服务级别的资源利用率的测量值中的至少一个。
8.如权利要求1所述的方法,其中所述估计成本的步骤可随着服务器数和时间中的至少一个而变化。
9.如权利要求1所述的方法,其中在所述在所述至少一个负载均衡器处获取来自客户端的请求的步骤中,该请求包括对动态数据的请求。
10.一种在包括多个服务器的系统中满足请求的方法,该方法包括步骤:
提供至少一个用于将请求路由到所述多个服务器的负载均衡器;
在所述至少一个负载均衡器处获取来自客户端的请求;
在所述至少一个负载均衡器处检查该请求;
估计由所述多个服务器中的至少两个服务器满足该请求的成本;
从该负载均衡器将在所述估计步骤中所获取的帮助满足该请求的信息连同该请求一起发送到所述多个服务器中的具有低的所估计的满足该请求的成本的服务器;以及
在所述服务器处使用该帮助满足该请求的信息来满足该请求。
11.一种系统,用于满足来自至少一个客户端的请求,该系统包括:
多个服务器;
至少一个意识到内容的负载均衡器,用于将请求以及满足该请求的信息路由到所述多个服务器;以及
与所述至少一个意识到内容的负载均衡器相关联的至少一个成本分析器,其基于用于满足请求的远程访问的数量和成本中的至少一个来估计由不同服务器来满足请求的成本;
其中所述意识到内容的负载均衡器将请求以及满足该请求的信息路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器;
并且其中所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
12.如权利要求11所述的系统,其中该至少一个意识到内容的负载均衡器包括多个意识到内容的负载均衡器,并且其中该系统进一步包括至少一个非意识到内容的负载均衡器,其用于将请求路由到所述多个意识到内容的负载均衡器。
13.如权利要求12所述的系统,其中所述多个意识到内容的负载均衡器中的至少一个驻存在所述多个服务器的至少一个上。
14.如权利要求11所述的系统,其中请求通过将该请求分类到分区中并将该请求路由到掌管该分区的服务器而被路由。
15.如权利要求11所述的系统,其中所述至少一个成本分析器通过检查包括在该请求中的至少一个参数,并使用关于数据在所述多个服务器间如何被分区的信息来估计用于满足该请求的远程访问的数量和成本中的至少一个来估计成本。
16.如权利要求11所述的系统,其中请求使用传输控制协议/因特网协议被发送,并且当检查该请求时,接受TCP连接。
17.如权利要求11所述的系统,其中该至少一个成本分析器估计用于满足该请求的期望服务级别和资源利用率的测量值中的至少一个。
18.如权利要求11所述的系统,其中估计成本的过程可随着服务器数和时间中的至少一个而变化。
19.一种用于在包括多个服务器的系统中满足来自至少一个客户端的请求的装置,该装置包括:
被配置为获取来自客户端的请求的装置;
被配置为检查该请求的内容的装置;
被配置为基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器满足该请求的成本的装置;
被配置为将请求以及满足该请求的信息路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器的装置
其中所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
20.一种方法,用于在包括多个服务器的系统中满足来自至少一个客户端的请求,该方法包括步骤:
获取来自客户端的请求;
检查该请求的内容;
基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器满足该请求的成本;以及
将请求以及满足该请求的信息路由到所述多个服务器中具有低的所估计的满足该请求的成本的服务器;
其中所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
21.一种方法,用于提供负载均衡服务,该方法包括步骤:
向顾客提供服务的服务提供商,所述向顾客提供服务的动作包括:
获取来自客户端的请求;
检查该请求的内容;
基于估计用于满足该请求的至少一个远程访问的数量和成本中的至少一个来估计由所述多个服务器中的至少两个服务器满足该请求的成本;以及
将请求以及满足该请求的信息路由到所述多个服务器中的具有低的所估计的满足该请求的成本的服务器;
其中所述具有低的所估计的满足该请求的成本的服务器访问所述满足该请求的信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/094,905 | 2005-03-31 | ||
US11/094,905 US20060224773A1 (en) | 2005-03-31 | 2005-03-31 | Systems and methods for content-aware load balancing |
PCT/EP2006/061130 WO2006103250A1 (en) | 2005-03-31 | 2006-03-29 | Systems and methods for content-aware load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101116056A CN101116056A (zh) | 2008-01-30 |
CN101116056B true CN101116056B (zh) | 2010-05-19 |
Family
ID=36586162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680004598.5A Expired - Fee Related CN101116056B (zh) | 2005-03-31 | 2006-03-29 | 用于意识到内容的负载均衡的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US20060224773A1 (zh) |
CN (1) | CN101116056B (zh) |
WO (1) | WO2006103250A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631401B2 (en) * | 2007-07-24 | 2014-01-14 | Ca, Inc. | Capacity planning by transaction type |
US20090150565A1 (en) * | 2007-12-05 | 2009-06-11 | Alcatel Lucent | SOA infrastructure for application sensitive routing of web services |
US8261278B2 (en) * | 2008-02-01 | 2012-09-04 | Ca, Inc. | Automatic baselining of resource consumption for transactions |
US8015144B2 (en) | 2008-02-26 | 2011-09-06 | Microsoft Corporation | Learning transportation modes from raw GPS data |
US8972177B2 (en) | 2008-02-26 | 2015-03-03 | Microsoft Technology Licensing, Llc | System for logging life experiences using geographic cues |
US8458298B2 (en) * | 2008-03-03 | 2013-06-04 | Microsoft Corporation | Failover in an internet location coordinate enhanced domain name system |
US8966121B2 (en) | 2008-03-03 | 2015-02-24 | Microsoft Corporation | Client-side management of domain name information |
US7930427B2 (en) * | 2008-03-03 | 2011-04-19 | Microsoft Corporation | Client-side load balancing |
US7991879B2 (en) | 2008-03-03 | 2011-08-02 | Microsoft Corporation | Internet location coordinate enhanced domain name system |
US8402468B2 (en) * | 2008-03-17 | 2013-03-19 | Ca, Inc. | Capacity planning based on resource utilization as a function of workload |
US8893131B2 (en) * | 2008-04-11 | 2014-11-18 | Yahoo! Inc. | System and/or method for bulk loading of records into an ordered distributed database |
US9063226B2 (en) * | 2009-01-14 | 2015-06-23 | Microsoft Technology Licensing, Llc | Detecting spatial outliers in a location entity dataset |
US9009177B2 (en) | 2009-09-25 | 2015-04-14 | Microsoft Corporation | Recommending points of interests in a region |
CN102075409B (zh) | 2009-11-24 | 2013-03-20 | 华为技术有限公司 | 请求消息处理方法、系统及负载均衡器设备 |
US9177004B2 (en) * | 2009-11-25 | 2015-11-03 | Bmc Software, Inc. | Balancing data across partitions of a table space during load processing |
US8612134B2 (en) | 2010-02-23 | 2013-12-17 | Microsoft Corporation | Mining correlation between locations using location history |
US8260958B2 (en) * | 2010-02-24 | 2012-09-04 | F5 Networks, Inc. | Reducing energy consumption of servers |
US9261376B2 (en) | 2010-02-24 | 2016-02-16 | Microsoft Technology Licensing, Llc | Route computation based on route-oriented vehicle trajectories |
US10288433B2 (en) * | 2010-02-25 | 2019-05-14 | Microsoft Technology Licensing, Llc | Map-matching for low-sampling-rate GPS trajectories |
US8719198B2 (en) | 2010-05-04 | 2014-05-06 | Microsoft Corporation | Collaborative location and activity recommendations |
US9593957B2 (en) | 2010-06-04 | 2017-03-14 | Microsoft Technology Licensing, Llc | Searching similar trajectories by locations |
CN102469110A (zh) * | 2010-11-01 | 2012-05-23 | 英业达股份有限公司 | 应用于一集群系统的负载均衡方法 |
US8645545B2 (en) | 2010-11-24 | 2014-02-04 | International Business Machines Corporation | Balancing the loads of servers in a server farm based on an angle between two vectors |
US8825813B2 (en) | 2010-12-28 | 2014-09-02 | Microsoft Corporation | Distributed network coordinate system based on network performance |
WO2013059957A1 (en) * | 2011-10-25 | 2013-05-02 | Hewlett-Packard Development Company, L.P. | Load balancing for charging system clusters |
CN103092527A (zh) * | 2011-10-31 | 2013-05-08 | 深圳市快播科技有限公司 | 小文件的存储方法及系统 |
US9754226B2 (en) | 2011-12-13 | 2017-09-05 | Microsoft Technology Licensing, Llc | Urban computing of route-oriented vehicles |
US20130166188A1 (en) | 2011-12-21 | 2013-06-27 | Microsoft Corporation | Determine Spatiotemporal Causal Interactions In Data |
US9253144B2 (en) | 2011-12-22 | 2016-02-02 | International Business Machines Corporation | Client-driven load balancing of dynamic IP address allocation |
CN103309843B (zh) * | 2012-03-06 | 2016-03-16 | 百度在线网络技术(北京)有限公司 | 服务器的配置方法和系统 |
KR102126507B1 (ko) | 2013-12-09 | 2020-06-24 | 삼성전자주식회사 | 센서 데이터 스트림을 처리하는 단말기, 시스템 및 방법 |
US9894023B2 (en) * | 2014-07-15 | 2018-02-13 | Zebrafish Labs, Inc. | Image feeding server network |
CN105306605B (zh) * | 2015-12-09 | 2018-12-25 | 北京中电普华信息技术有限公司 | 一种双主机服务器系统 |
US10542078B1 (en) * | 2017-06-13 | 2020-01-21 | Parallels International Gmbh | System and method of load balancing traffic bursts in non-real time networks |
CN107911438A (zh) * | 2017-11-06 | 2018-04-13 | 出门问问信息科技有限公司 | 数据处理的方法、装置及系统 |
US10963375B1 (en) * | 2018-03-23 | 2021-03-30 | Amazon Technologies, Inc. | Managing maintenance operations for a distributed system |
US10885018B2 (en) | 2018-05-07 | 2021-01-05 | Microsoft Technology Licensing, Llc | Containerization for elastic and scalable databases |
KR20200084707A (ko) | 2019-01-03 | 2020-07-13 | 삼성전자주식회사 | 태스크 분산 처리를 관리하는 마스터 장치, 태스크를 처리하는 태스크 처리 장치, 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1450765A (zh) * | 2002-03-05 | 2003-10-22 | 日本电气株式会社 | 服务器负载平衡系统、装置以及内容管理装置 |
CN1489069A (zh) * | 2002-10-10 | 2004-04-14 | 华为技术有限公司 | 面向内容的负载均衡方法和设备 |
EP1027796B1 (en) * | 1997-10-31 | 2004-06-30 | Oracle Corporation | Distributed web application server |
CN1588943A (zh) * | 2004-09-01 | 2005-03-02 | 杭州恒生电子股份有限公司 | 联机处理系统中共享数据的处理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189043B1 (en) * | 1997-06-09 | 2001-02-13 | At&T Corp | Dynamic cache replication in a internet environment through routers and servers utilizing a reverse tree generation |
EP1212680B1 (en) * | 1999-08-13 | 2007-07-04 | Sun Microsystems, Inc. | Graceful distribution in application server load balancing |
US20030046394A1 (en) * | 2000-11-03 | 2003-03-06 | Steve Goddard | System and method for an application space server cluster |
US20020194324A1 (en) * | 2001-04-26 | 2002-12-19 | Aloke Guha | System for global and local data resource management for service guarantees |
US6944678B2 (en) * | 2001-06-18 | 2005-09-13 | Transtech Networks Usa, Inc. | Content-aware application switch and methods thereof |
US7117242B2 (en) * | 2001-06-20 | 2006-10-03 | Hewlett-Packard Development Company, L.P. | System and method for workload-aware request distribution in cluster-based network servers |
US7222190B2 (en) * | 2001-11-02 | 2007-05-22 | Internap Network Services Corporation | System and method to provide routing control of information over data networks |
US20030229710A1 (en) * | 2002-06-11 | 2003-12-11 | Netrake Corporation | Method for matching complex patterns in IP data streams |
US7257628B2 (en) * | 2002-11-08 | 2007-08-14 | Cisco Technology, Inc. | Methods and apparatus for performing content distribution in a content distribution network |
US20060168107A1 (en) * | 2004-03-16 | 2006-07-27 | Balan Rajesh K | Generalized on-demand service architecture for interactive applications |
-
2005
- 2005-03-31 US US11/094,905 patent/US20060224773A1/en not_active Abandoned
-
2006
- 2006-03-29 CN CN200680004598.5A patent/CN101116056B/zh not_active Expired - Fee Related
- 2006-03-29 WO PCT/EP2006/061130 patent/WO2006103250A1/en not_active Application Discontinuation
-
2008
- 2008-06-04 US US12/132,811 patent/US8185654B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1027796B1 (en) * | 1997-10-31 | 2004-06-30 | Oracle Corporation | Distributed web application server |
CN1450765A (zh) * | 2002-03-05 | 2003-10-22 | 日本电气株式会社 | 服务器负载平衡系统、装置以及内容管理装置 |
CN1489069A (zh) * | 2002-10-10 | 2004-04-14 | 华为技术有限公司 | 面向内容的负载均衡方法和设备 |
CN1588943A (zh) * | 2004-09-01 | 2005-03-02 | 杭州恒生电子股份有限公司 | 联机处理系统中共享数据的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8185654B2 (en) | 2012-05-22 |
US20080235397A1 (en) | 2008-09-25 |
CN101116056A (zh) | 2008-01-30 |
WO2006103250A1 (en) | 2006-10-05 |
US20060224773A1 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116056B (zh) | 用于意识到内容的负载均衡的系统和方法 | |
US8302100B2 (en) | System for balance distribution of requests across multiple servers using dynamic metrics | |
US10567303B2 (en) | System and method for routing service requests | |
KR100318779B1 (ko) | 인터넷에서의동적경로배정방법및장치 | |
US6324580B1 (en) | Load balancing for replicated services | |
US8504556B1 (en) | System and method for diminishing workload imbalance across multiple database systems | |
US8352634B2 (en) | On-demand propagation of routing information in distributed computing system | |
US7730086B1 (en) | Data set request allocations to computers | |
IL187612A (en) | A method and system for selectively unloading workloads of information centers | |
JPH11503551A (ja) | サーバ・コンピュータのプロセッサ全体にわたる負荷平衡化 | |
US10715638B2 (en) | Method and system for server assignment using predicted network metrics | |
CN101026570A (zh) | 基于负载均衡度量实例来选择服务器的方法和系统 | |
US7647592B2 (en) | Methods and systems for assigning objects to processing units | |
CN106789853A (zh) | 一种转码器的动态调度方法及装置 | |
Ramana et al. | A multi-class load balancing algorithm (MCLB) for heterogeneous web cluster | |
Jongtaveesataporn et al. | Enhancing enterprise service bus capability for load balancing | |
Shukla et al. | Load balancing approaches for web servers: A survey of recent trends | |
Khansoltani et al. | A request redirection algorithm in content delivery network: Using promethee approach | |
Wang et al. | Low-cost web service discovery based on distributed decision tree in P2P environments | |
Saravanan et al. | Cloud resource optimization based on Poisson linear deep gradient learning for mobile cloud computing | |
Zohar | Cost-adaptive load sharing for geographically distributed data center network | |
Rodrigues Filho et al. | A Self-Distributing System Framework for the Computing Continuum | |
Hassan et al. | Cloudlet Networks Performance Analysis and Improvement | |
Yang et al. | An Effective Request Distribution Mechanism For Improving Load Balance in Web Server System | |
Jiang et al. | An adaptive control mechanism for access control in large-scale distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100519 Termination date: 20120329 |