状态感知负载平衡的制作方法

文档序号:14958897发布日期:2018-07-18 00:07阅读:179来源:国知局

传统的负载平衡器包括促进客户端设备和应用服务器之间的应用流的代理服务器。负载平衡器在多个应用服务器之间分配流量,应用服务器可以是在多个主机上运行的应用服务器的虚拟化实例。负载平衡机制可能是循环分配机制,或者是将应用流分配给服务器的一些其他的机制。代理服务器将应用服务器表示给外部客户端。代理服务器提供服务连续性。负载平衡器或代理服务器组件可以监视应用服务器是否可访问,并且将传入的流分配给当前可访问的那些应用服务器。



技术实现要素:

提供本发明内容是为了介绍在下面于具体实施方式中进一步描述的本公开的简化概念。本发明内容不旨在标识所要求保护的主题的基本特征,也不旨在用于确定所要求保护的主题的范围。

本公开的示例提供了用于负载平衡的系统、方法和装置,其中监视服务监视多个应用服务器的状态信息。状态信息包括诸如基于硬件的状态信息、软件状态信息、应用服务器到后端服务器的网络连接性的状态、或其他状态信息等。当负载平衡器接收到来自客户端设备的建立到应用服务器的新的流的请求时,它向监视服务器查询可用于标识处理该请求的应用服务器的标识符。监视服务器接收该查询并基于应用服务器的状态信息,将一个或多个应用服务器标识符提供回负载平衡器。负载平衡器选择那些标识符的其中一个标识符,并且设立到应用服务器的连接,诸如代理连接。

附图说明

参照附图阐述了具体实施方式。在附图中,附图标记最左边的(一个或多个)数字标识附图标记首次出现的附图。在不同的图中使用相同的附图标记指出相似或相同的项。

图1是图示了用于状态感知负载平衡的示例环境的框图。

图2图示了具有服务器标识服务的示例主机服务器节点的框图。

图3图示了具有监视服务的示例主机服务器节点的框图。

图4图示了描绘用于提供状态感知负载平衡的示例过程的流程图。

图5图示了描绘用于基于状态信息来确定处理客户端请求的应用服务器的列表的示例过程的流程图。

图6是可用于实施虚拟资源监视和联网策略更新的示例计算系统的框图。

具体实施方式

本申请的实施例包括具有负载平衡的环境,并且其中,监视服务监视多个应用服务器的状态信息。状态信息包括基于硬件的状态信息之类的信息,包括托管应用服务器实例的主机服务器上的cpu利用、网络利用和存储器负载。状态信息还可以包括软件状态信息,诸如由主机服务器或特定的应用服务器实例处理的流的数量、应用服务器的高速缓存状态等等。状态信息可以包括应用服务器到后端服务器的网络连接性的状态。当负载平衡器从客户端设备接收一个建立到应用服务器的新的流的请求时,它会向监视服务器查询处理该请求的应用服务器的标识符。监视服务器接收查询,并且基于应用服务器的状态信息将一个或多个应用服务器标识符提供回负载平衡器。负载平衡器选择那些标识符中的一个,并且设立到应用服务器的连接(诸如代理连接)。

传统的负载平衡器可以维护用于其所服务的应用服务器的“向上或向下(upanddown)”状态信息。然而,传统的负载平衡器对每个应用服务器没有更进一步的可见性。例如,传统的负载平衡器没有对应用服务器的cpu负载、应用服务器数据高速缓存、或关于特定的应用服务器对客户端请求的适当性的其他信息的可见性。该信息在优化或以其他方式改善数据中心资源利用以向更多客户端设备提供应用方面很有用。本公开的实施例利用了状态信息。该状态信息指示当前应用服务器的能力(capacity)和响应能力,以及该能力和响应能力怎样受到数据中心的基础设施(例如,操作系统、软件、服务器、储存器、和网络设备)的影响。监视服务器还可以接收指示被实例化为虚拟机的应用服务器的状态的信息。监视服务器可以被配置为维护关于被高速缓存在应用服务器中的数据的信息,这可以提供关于哪个应用服务器是最合适的或者以其他方式足够适合于响应客户端请求的信息。

因此,本申请的实施例在负载平衡的数据中心环境中的应用服务器之间提供了智能地路由连接请求的能力。与传统的负载平衡相比,实施例提供了对客户端请求的更快响应、更少的连接丢失、更少的超时等等。

图1是图示了用于状态感知负载平衡的示例环境100的示意图。负载平衡器节点102包括策略贮存器104和负载平衡逻辑106。负载平衡器节点102可以包括负载平衡器节点102的组件在其上被存储和执行的服务器计算机。负载平衡器节点102还可以包括路由器功能性、防火墙功能性、网络地址转换(nat)功能性等等。负载平衡器节点102可以是专用的硬件负载平衡器,或负载平衡器的服务器计算机实现,包括在数据中心计算系统上执行的负载平衡器的虚拟化的实例化。负载平衡器节点102的各方面可以分布在一个或多个计算系统之中。

负载平衡器节点102的代理服务108代理用于一个或多个客户端设备110的连接。监视服务节点112监视托管一个或多个应用服务器116的多个主机服务器节点114。应用服务器116可以是作为虚拟机、作为应用容器或作为其他虚拟化类型来执行的虚拟化的实例化。

应用服务器116可以包括前端服务器,诸如网络服务器、电子邮件服务器,或客户端设备110可以初始连接到的其他服务器。应用服务器116可以包括中间层服务器,诸如可以在联网环境中应用“业务逻辑”。例如,这样的业务逻辑可以包括与诸如网络服务器或其他服务器之类的前端服务器前端的客户端会话相关联的状态性数据。一个示例是在电子商务网站上的购物会话期间处理与顾客的购物车相关联的状态性数据的购物车服务器。另一个示例可以是经由web界面向客户端提供基于云的生产力软件(例如,电子表格程序、文字处理程序等)的服务器。应用服务器116还可以包括诸如数据库服务器之类的后端服务器,后端服务器可以提供中间层服务器或前端服务器用来获得与客户端设备110建立的会话相关的数据的信息。应用服务器116的其他示例在不脱离实施例的范围的情况下是可能的。

尽管图1中的客户端设备被示出为手持式计算设备(诸如平板计算机或移动电话),然而根据实施例的客户端设备110包括能够与应用服务器116建立客户端-服务器连接的广泛的设备,包括膝上型计算机、游戏控制台、台式计算机、智能电视、电视机顶盒、服务器计算机、信息亭计算系统、媒体播放器、智能电器(诸如网络启用的恒温器、家庭安全系统、冰箱等)、可穿戴设备(诸如,嵌入衣服、眼镜、护目镜、鞋子等中的计算设备)。客户端设备110还包括应用服务器,包括多用户、多应用服务器。在一个实现中,客户端设备110可以是前端web服务器,并且应用服务器116可以是向客户端设备110提供业务逻辑服务的中间层服务器。因此,客户端设备110本身可以是服务器计算机,其与其他客户端设备相连接,以向那些客户端设备提供应用功能性。客户端设备110的其他示例在不脱离实施例的范围的情况下是可能的。

代理服务108接受来自一个或多个客户端设备110的对连接到应用的传入客户端请求,在图1中用标有圆圈的“1”来指示。该应用与应用服务器116相关联,应用服务器116被配置为服务于与该应用相关联的客户端请求。客户端请求标识该应用。例如,该应用可以由目标网络地址、协议、目标端口号、更高层信息等中的一个或多个来标识。在互联网协议(ip)联网rt环境中,该应用可以通过目标ip地址、传输层协议(诸如传输控制协议(tcp)、用户数据报协议(udp)和端口号)的指示来标识。在一个示例中,端口号可以是诸如“熟知的”tcp端口号80之类的tcp端口号,其指示该请求是超文本传输协议(http)请求。在该示例中,客户端请求可以包括建立到web服务器的http连接的http请求。但是在不脱离实施例的范围的情况下,可以使用其他的tcp或udp端口来标识该应用。另外,应用可以被定义为基于其他协议,诸如http、实时协议(rtp)等等。在不脱离实施例的范围的情况下,除了ip联网以外还可以使用其他协议族。客户端请求还可以包括特定于该请求的其他信息,诸如对待提供的特定文件或数据的请求等等。

包括在客户端请求中的目标ip地址可以是公共ip地址,其从对与该应用相关联的统一资源定位符(url)的域名服务(dns)请求中解析。负载平衡器节点102在负载平衡器节点102的面向外部或面向公众的端口上被分配公共ip地址。如在下面更详细地描述的,代理服务108接收该请求,并且与应用服务器116通信以代表客户端设备110建立连接。代理服务108和应用服务器116可以被分配来自环境100内的专用地址空间的ip地址。

负载平衡逻辑106确定服务器标识服务118以与来自客户端设备110的请求相关联。在服务器标识服务118驻留在主机服务器节点114上(诸如服务器标识服务118-2)的情况下,负载平衡逻辑可以选择经由数据中心的基础设施的底层网络设备而活动且可达的主机服务器节点114。通过使用循环方案、随机选择等等,诸如基于包含在策略贮存器104中的优先级列表的一个或多个,负载平衡逻辑106可以从一个或多个默认服务器标识服务118中进行选择。

负载平衡逻辑106向监视服务节点112发送与该请求有关的查询。示例查询是对处理该请求的一个或多个应用服务器116的列表的查询。这在图1中用标有圆圈的“2”示出。例如使用tcp或udp的分组交换可用于负载平衡器节点102和监视服务器节点112之间的通信。查询可包括来自客户端请求或与之相关的信息。例如,可以通过负载平衡逻辑将整个客户端请求转发到监视服务节点112。替代地,可以在查询中提供来自请求的信息子集。信息子集可以包括目标网络地址(例如,目标ip地址)、客户端设备110的源网络地址(例如,客户端设备110的源ip地址)、标识目标协议(例如,tcp、udp或一些其他的协议)的信息、标识目标端口(例如,tcp端口80、或一些其他官方或非官方的tcp或udp端口)的信息、在请求中标识的源端口(例如,源tcp或udp端口)。查询还可以包括在客户端请求中包含的其他信息,包括更高的协议层信息,诸如指示对特定信息、文件等的请求的数据。

监视服务节点112中的服务器标识服务118传递由监视服务节点112接收的查询。服务器标识服务118解析查询中包括的数据,包括关于客户端请求的数据。服务器标识服务118利用状态数据120以及策略贮存器122中的策略来确定处理客户端请求的应用服务器116中的一个或多个的列表。

状态数据120可以包括主机服务器节点114的硬件状态数据,包括以下中的一个或多个:主机服务器节点114的cpu利用数据、主机服务器节点114的存储器利用数据以及主机服务器节点114的网络利用数据。cpu利用数据可以包括每秒指令,一段时间内达到的最大cpu利用的百分比,或一些其他cpu利用数据。存储器利用数据可以包括当前使用的系统存储器(诸如随机存取存储器)的百分比或量,当前使用的永久性储存器(诸如硬盘驱动器或固态驱动器)的百分比或量,存储器总线或端口传输利用数据等等。网络利用数据可以包括一段时间上的数据分组数量(例如,每秒分组),所使用的带宽的百分比或量或数据速率(例如,每秒比特),一段时间内在发送或接收队列中存在的数据的平均或峰值量,或与网络接口有关的其他数据。硬件状态数据还可以包括其他信息,诸如功耗数据、温度数据和其他数据,其可以指示主机服务器节点114在给定时间有多繁忙。

状态数据120可以包括软件状态数据,诸如应用服务器116的虚拟机状态中的一个或多个、主机服务器节点114和/或应用服务器116正在处理的每秒连接(或“流”)、应用服务器116的高速缓存状态、高速缓存未命中和/或高速缓存命中的数量、应用服务器116到后端服务器124的网络连接性的状态等等。高速缓存状态信息可以包括关于在应用服务器116上高速缓存的数据的信息。例如,通过从后端服务器124(在图1中用标有圆圈的“a”来图示的交换),从其他服务器(诸如位于环境100内的服务器,或者从公共互联网上的服务器,以及其他位置处的服务器)获得数据,应用服务器116可以对客户端请求做出响应。应用服务器116可以在执行其功能期间生成数据,并将该数据高速缓存在存储器中。为第一客户端生成或检索的这种高速缓存的数据也可以与另一客户端请求有关,并且高速缓存的数据的知识可帮助标识服务于新的客户端请求的应用服务器116。重叠高速缓存状态数据可以指示处理新的客户端请求的合适的应用服务器116。对于新的客户端请求,可以有整数n个相关数据部分。高速缓存状态数据可以指示应用服务器116具有n个相关部分中的x个。可以选择x值最高的应用服务器来服务于请求。

策略贮存器122可以包括可配置策略或不可配置策略,服务器标识服务118使用该策略来确定处理客户端请求的一个或多个应用服务器116的列表。策略贮存器122中的策略可以包括某些阈值,诸如取消应用服务器116处理请求的资格的硬件利用阈值或软件利用阈值。例如,超过60%的cpu利用可以是取消(disqualify)应用服务器116服务于客户端请求的可配置阈值,应用服务器116在满足或超过该阈值的主机服务器节点114上执行。80%的网络利用阈值同样可以是可配置阈值,其取消在满足或超过该阈值的主机服务器节点114上执行的任何应用服务器116的资格。策略贮存器122中的策略还可以包括用于向某些应用服务器116发送某些请求的可配置选项。例如,某些应用服务器116可以通过策略贮存器122与不同的源ip地址、目标ip地址、协议、源端口、目标端口等等相关联。用于传入数据查询的部分选择过程可以是基于从与客户端请求中的地址、协议和端口相关联的应用服务器116中进行选择。

策略贮存器122中的策略可以包括被用来确定处理客户请求的应用服务器116的列表的一个或多个算法。算法可以包括加权和,各种因素被输入到该算法中来为应用服务器116创建优先级度量。示例的加权和算法可以是:

优先级=a×cpu_util+b×network_util+c×cache_state等式1

a、b和c可以是在策略贮存器122中指定的可配置权重或不可配置权重。cpu_util可以是与主机服务器节点114的cpu利用相关联的度量。network_util可以是与主机服务器节点114的网络接口利用相关联的度量。cache_state可以是与存储在主机服务器节点114上的数据的相关性相关联的度量。cache_state可以表示存储在高速缓存中的数据与客户端请求相关的可能性。如果高速缓存有相关数据,则cache_state可以是第一值;如果高速缓存没有相关数据,则cache_state可以是第二值。cache_state可以指示存储在高速缓存上的被请求数据的量或百分比等。在不脱离实施例的范围的情况下,可以使用其他示例的加权和算法以及其他类型的算法。

策略贮存器122中的策略还可以配置服务器标识服务118以确定趋势数据。服务器标识服务118可以从历史数据确定当前趋势,以便预测主机服务器节点114和/或应用服务器114中的一个或多个的未来能力。在趋势数据指示主机服务器节点114和/或应用服务器114可能很快超过一个或多个阈值能力水平的情况下,则服务器标识服务118可以使得另一应用服务器114诸如在另一服务器节点114上被实例化。基于这样的健康监视和趋势数据,服务器标识服务118可以确定一个或多个处理客户端请求的应用服务器。例如,如果托管在接近阈值能力度量的主机服务器节点上的应用服务器114的趋势是向下,则可以选择它来处理客户端请求,但是如果其趋势是向上的,则不可以选择它。在不脱离实施例的范围的情况下,其他示例是可能的。

服务器标识服务118可以选择高达特定数量的应用服务器116,这些应用服务器116满足阈值优先级度量(其也可以是策略贮存器122中的策略的可配置元素或不可配置元素)。服务器标识服务118可以选择具有最高优先级的一定数量的应用服务器116等等。服务器标识服务118确定应用服务器116的一个或多个标识符。标识符可以包括ip地址、服务器名称或一些其他的标识符。标识符可以是唯一地标识应用服务器116的散列值。在一些实施例中,可以使用最高随机加权(hrw)来为应用服务器116的列表提供散列值。负载平衡器节点102可以利用hrw散列值来选择处理客户端请求的应用服务器。为了利用hrw散列值,负载平衡器节点102可以选择具有最高或最大hrw散列值的应用服务器。在许多负载平衡实例中使用时,因为散列值是伪随机的,所以具有最高散列值的应用服务器将是伪随机选择的应用服务器,从而导致应用服务器均匀分布中的大量实例。hrw散列值可以不同于用于标识应用服务器的任何散列值。换句话说,可以使用hrw散列值来从应用服务器中进行选择,但是可以使用另一标识符(包括散列值)来标识服务器。

服务器标识服务118可以基于状态数据120来确定一个或多个处理客户端请求的应用服务器116,诸如基于计算的优先级度量。在所有的主机服务器114和/或应用服务器116当前正在经历沉重负载的情况下,诸如都高于指示负载的某个阈值度量,服务器标识服务118可以使得另一应用服务器116在新的主机服务器节点114上被实例化。在这种情况下,服务器标识服务118可以确定将要被传递给负载平衡逻辑的关于新实例化的应用服务器116的标识符。

服务器标识服务118使得一个或多个应用服务器116的标识符的列表被发送到负载平衡器节点102。这在图1中用标有圆圈的“3”来标识。负载平衡器节点102将该列表传递给负载平衡逻辑106。负载平衡逻辑106从由服务器标识服务提供的列表中指示的一个或多个应用服务器116中选择应用服务器。该选择可以是基于配置,诸如由策略贮存器104中的一个或多个策略提供。策略贮存器104中的策略可以提供选择应用服务器116中随机的一个。策略贮存器104中的策略可以提供选择应用服务器116中具有最高优先级度量的一个。因此,在一些实施例中,服务器标识服务可以与一个或多个处理客户端请求的应用服务器116的列表一起来提供优先级度量,或者是除了一个或多个处理客户端请求的应用服务器116的列表之外还提供优先级度量。在一些实施例中,标识符被用来选择处理客户端请求的应用服务器116。例如,在标识符与hrw散列值相关联的情况下,可以选择与最小或最大散列值相关联的应用服务器。如下面更详细描述的,诸如基于由负载平衡器节点102来监视应用服务器的网络可访问性,负载平衡逻辑106还可以利用关于应用服务器116的向上/向下(up/down)信息。策略贮存器104中的策略可以提供:不从一个或多个应用服务器116的列表中选择(诸如由于瞬时网络问题或其他原因而)不可访问的任何应用服务器116来服务于客户端请求。在这种情况下,可以选择可用的最高优先级服务器。

负载平衡逻辑106向代理服务108提供所选择的应用服务器116的标识,诸如所选择的应用服务器116的网络地址或其他标识符。代理服务108向托管所选择的应用服务器116的主机服务器节点114发送请求。这在图1中用标有圆圈的“4”示出。主机服务器节点114将该请求传递给应用服务器116,应用服务器116然后根据其正常操作答复来自代理服务108的请求,并且连接在应用服务器116和代理服务108之间被建立以处理客户请求。该连接在图1中用标有圆圈的“5”示出。如在图1中用标有圆圈的“6”来表示,代理服务108建立与客户端设备110的连接,并且所请求的数据以类似于或相同于传统代理连接的方式经由代理服务108和两个连接从应用服务器116被发送到客户端设备110。通过建立与应用服务器116和客户端设备110两者的连接,代理服务108而使得客户端设备110看起来好像被连接到了应用服务器116。

如上所指,服务器标识服务118利用主机服务器节点114和应用服务器116的状态数据120来确定一个或多个处理客户端请求的应用服务器116的列表。服务器标识服务118可以以几种方式获得这个状态数据。在一些实施例中,诸如经由主机服务器节点114-2上的监视服务126或存储在其中一个主机服务器节点114上的服务器标识服务118-2的另一实例,服务器标识服务118从主机服务器节点114接收推送通知。(在图1中图示的示例中,服务器标识服务118存在于主机服务器节点114-1上)。这些交换在图1中用标有圆圈的“b”和“c”来图示。服务器标识服务118的多个实例——诸如服务器标识服务118-1和118-2——可以交换它们的状态数据120以使得两个实例都具有完整的数据集,并且可以响应来自负载平衡器节点102的查询以提供一个或多个处理客户端请求的应用服务器的列表。监视服务126可以是操作系统组件、主机服务器节点114-2的单独组件、安装在主机服务器节点114-2上的管理程序的组件等等。

服务器标识服务118可以监视主机服务器节点114的网络流量,包括例如去往和来自后端服务器124或其他网络节点的网络流量,以确定状态数据120中的一些或全部。例如,监视服务节点121可以包括网络数据监视器(例如,“分组嗅探器”),其监视网络流量以确定由应用服务器116从后端服务器124或者从其他位置获得的文件或其他数据。即使网络上的这类数据全部或部分地被加密,网络流量也可以提供有关网络流量负载的信息,诸如每秒分组、每秒比特等等。此外,存储在状态数据120中的网络流量数据可以由服务器标识服务118从存在于网络中的网络元件上的监视或报告代理获得,诸如存在于在路由器、交换机、电力机架、不间断电源(ups)、专用监视设备等等上。

负载平衡器节点102的主机监视服务128也可以监视应用服务器。这在图1中用标有圆圈的“d”来表示。主机监视服务128可以监视到主机服务器节点114的流量,以确定主机服务器节点114是否保持经由底层网络可访问。主机监视服务128还可以从主机服务器节点114和/或应用服务器116请求和接收关于它们的负载的数据。因此,在一些实施例中,负载平衡器节点102可以获得并存储一些或全部状态数据(与状态数据120相似或相同)。主机监视服务128可以维持可用性信息,该可用性信息指示主机服务器节点114和/或应用服务器116是否在网络上经由数据中心的基础设施的底层网络设备可用和/或可到达。主机监视服务128可以向主机服务器节点114和/或应用服务器116发送各种保持活动消息、ping、请求或其他数据传输类型以确定它们是否可以经由网络访问。主机监视服务128可以包括虚拟化交换或路由功能性,并且因此可以具有与底层数据中心网络相关联的路由或交换数据(诸如路由表更新),并且因此能够标识影响主机服务器节点114的可访问性的瞬时或非瞬时的网络变化或故障。如上所述,至少部分地基于可用性信息,负载平衡逻辑106可以从监视服务节点112提供的一个或多个应用服务器116的列表中选择应用服务器116。负载平衡逻辑106还可以至少部分地基于状态数据来选择一个或多个应用服务器。因此,负载平衡逻辑106可以从服务器标识服务118接收应用服务器116的列表,并且基于其自己的状态和/或可用性信息对应用服务器116的列表进行排序。在一些实施例中,服务器标识服务118至少部分地基于状态数据120(和策略贮存器122)将应用服务器116的列表提供给负载平衡逻辑106,并且应用服务器116的该列表还可以指示或伴随有指示应用服务器116的列表的优先级、排名或权重的信息。应用服务器116的优先级、排名或权重本身可以是基于状态数据120和/或策略贮存器122。此外,基于由主机监视服务128分别确定并获得的状态数据和可用性数据,负载平衡逻辑106可以分别确定应用服务器116列表的优先级、排名或权重。

负载平衡器节点102还包括报告节点130。报告节点130被配置为将数据中继到管理节点。被中继到管理节点的数据包括诸如由每个应用服务器114报告并由主机监视服务128获得并存储的负载数据和可用性(当前和历史)之类的数据。该数据可以包括关于来自客户端设备的传入流量的统计资料。应用管理员可以使用该数据来改善负载平衡器策略(例如,被存储在策略贮存器104中的策略)和/或监视服务112策略(例如,被存储在策略贮存器122中的策略)。管理员还可以利用这个报告的数据来更改用于确定负载的算法和/或选择处理客户请求的应用服务器116的算法。

在一个示例中,报告节点130可以报告指示应用服务器116过载的数据。基于可配置策略(例如,策略贮存器104中的策略),管理节点可以利用报告节点130报告的数据来自动地使得数据中心内的附加应用服务器116的实例化。这使得能够直接响应于应用所经受的当前负载(例如,由与单个应用相关联的所有应用服务器116集体经受的负载)来自动调节数据中心资源的消耗,从而提高应用的成本效率。

在特定的应用服务器116的过载阈值接近能力的情况下,管理节点(或管理员)可以检查由报告节点130报告的数据,以确定应用服务器116是否处于压力水平。策略贮存器104中的策略可以被修改以增加不处于压力水平的应用服务器116的能力阈值水平。这导致将附加的传入数据连接添加到那些特定的应用服务器。数据可以由管理节点进一步评估,并且如果在更大能力阈值水平处不超过压力水平,则可以实施过载阈值的进一步增加。类似地,可以标识经受处于低于其阈值的能力水平的压力水平的应用服务器116,并且在策略贮存器104中减小它们的能力水平阈值。

尽管图1被图示为具有独立的监视服务节点112,但服务器标识服务118可以驻留在主机服务器节点114中的一个主机服务器节点上,诸如在应用容器、管理程序等中执行的虚拟化的实例化。在一些未在图1中图示的实施例中,服务器标识服务118作为模块驻留在负载平衡器节点102上。负载平衡器节点102和/或监视服务节点112可以驻留在一个或多个物理服务器机器上,和/或可以是驻留在相同或不同的物理服务器上的虚拟化的实例化。在实现中,环境100中可以部署多于一个的负载平衡器节点102。

尽管图1被图示为在负载平衡器节点102和其中一个应用服务器116之间建立了单个代理连接,但负载平衡器节点102实际上代理多个客户端设备110到多个应用服务器116的多个连接。用于特定的客户端设备110的多于一个代理连接可以由负载平衡器节点102进行负载平衡,诸如负载平衡到一个或多个应用服务器116。

管理员可以提供确定监视服务节点112和负载平衡器节点102之一或其二者如何操作的策略,包括基于负载的阈值(cpu利用阈值、存储器利用阈值、网络利用阈值、连接阈值,每秒连接阈值数量等等)。服务器标识服务118和/或负载平衡逻辑106所利用的算法的各个方面也可以是可配置的,诸如以控制负载平衡逻辑106如何从由监视服务节点112标识的应用服务器116之中进行选择;这可以包括可配置权重,在确定应用服务器116的列表中要包括的状态数据120的标识等等。此外,经由策略可配置可以是负载平衡逻辑106是否可以不顾由服务器标识服务118确定的优先级的选择,诸如基于其自己对应用服务器116和/或主机服务器节点114的监视或者可用于负载平衡逻辑106的其他信息。

图2图示了具有服务器标识服务118的主机服务器节点200的框图。主机服务器节点200可以与图1的主机服务器节点114-1相同或相似。主机服务器节点200包括存储器202和一个或多个处理器204。存储器202是诸如ram之类的系统存储器,如在此具体实施方式中的其他地方更详细描述的。存储器202包括管理程序206,其中,一个或多个应用服务器116执行为虚拟化的实例化。高速缓存208临时存储与应用服务器116相关联的数据,诸如可以响应于客户端请求而获得或生成的文件或其他数据。

如在此具体实施方式中的其他地方所述,服务器标识服务118维护状态数据120并利用策略贮存器122。服务器标识服务118监视应用服务器116、和主机服务器节点200以及在网络中的其他主机服务器节点上执行的其他应用服务器的状态。服务器标识服务118还可以向网络中的其他服务器标识服务118提供状态数据120和/或从网络中的其他服务器标识服务118,或从诸如监视服务126之类的监视服务接收状态数据120。

主机服务器节点200包括将主机服务器节点200连接到网络的一个或多个网络接口210,使得主机服务器节点200能够与网络上的其他设备通信,诸如监视服务节点112和/或负载平衡器节点102。

在不脱离实施例的范围的情况下,主机服务器节点200的其他示例是可能的。

图3图示了具有监视服务126的主机服务器节点300的框图。主机服务器节点300可以与图1的主机服务器节点114-2相同或相似。主机服务器节点300包括存储器302和一个或多个处理器304。存储器302是诸如ram的系统存储器,如在此具体实施方式内的其他地方更详细描述的。存储器302包括管理程序306,其中,一个或多个应用服务器116执行为虚拟化的实例化。高速缓存308临时存储与应用服务器116相关联的数据,诸如可以响应于客户端请求而获得或生成的文件或其他数据。

监视服务126将与应用服务器116以及主机服务器节点300相关联的状态数据提供给服务器标识服务118。主机服务器节点300包括一个或多个网络接口310,其将主机服务器节点300连接到网络,使得主机服务器节点300能够与网络上的其他设备通信,诸如监视服务节点112和/或负载平衡器节点102。

主机服务器节点300的其他示例在不脱离实施例的范围的情况下是可能的。

图4和图5描绘了示出根据各种示例的示例过程的流程图。这些过程的操作在各个框中示出并参考这些框来进行总结。这些过程被图示为逻辑流程图,其每个操作可以表示可用硬件、软件或其组合来实施的一组操作。在软件环境中,这些操作表示存储在一个或多个计算机存储介质上的计算机可执行指令,这些计算机可执行指令在由一个或多个处理器执行时使一个或多个处理器能够执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。操作被描述的顺序不旨在被解释为限制,并且任何数量的所描述操作可以以任何顺序被组合,被分成子操作,和/或被并行地执行以实施该过程。根据本公开的各种示例的过程可以仅包括在逻辑流程图中所描绘的操作中的一些或全部。

图4图示了用于提供状态感知负载平衡的示例过程400。在402处,诸如负载平衡器节点102之类的负载平衡器从客户端设备接收对将要建立连接到应用的客户端请求。该请求可以基于目标网络地址、协议、目标端口、源端口等中的一个或多个向负载平衡器标识应用。示例是目标ip地址,将tcp或udp指定为协议,并包括udp或tcp端口号——诸如tcp端口80,其可以将请求标识为http请求。在不脱离实施例的范围的情况下,其他示例是可能的。

在404处,负载平衡器向监视服务器发送对能够服务于客户端请求的一个或多个应用服务器的列表的查询。该查询诸如通过包含来自请求的数据来指示客户端请求。提供由查询或与查询相关联的示例数据包括源或目标网络地址(例如,源和目标ip地址)、请求协议(例如,tcp、udp或其他协议),目标或源端口(例如,tcp或udp源和目标端口)。与请求相关联的其他信息可以包括客户端请求中包括的更高层协议信息。例如,在客户端请求是http请求的情况下,查询可以标识客户端设备正在请求的特定资源,诸如特定网页、文件或其他资源。

在406处,负载平衡器从监视服务器接收与应用相关联的多个应用服务器中的一个或多个应用服务器的一个或多个标识符。如在此具体实施方式内其他地方更详细讨论的,监视服务器基于多个应用服务器的状态信息来确定一个或多个应用服务器的列表。一个或多个应用服务器的列表可以包括应用服务器的标识符的列表,诸如ip地址、网络名称、媒体访问控制(mac)地址等。监视服务节点还可以提供诸如排名、权重或其他优先级信息(诸如hrw散列)的优先级信息的列表。

在408处,负载平衡器监视多个应用服务器的可用性状态。负载平衡器可以监视被发送到应用服务器和从应用服务器接收的网络流量,以检测应用服务器是否经由网络可访问或可达。例如,负载平衡器可以确定被发送到应用服务器的请求何时超时或以其他方式没有及时响应。负载平衡器可以发送ping、保持活跃(keep-alive)、请求和其他通信,以便维护应用服务器可用性的观察。负载平衡器可以包括诸如虚拟化联网组件之类的联网组件,其维护对底层网络基础设施的可见性。例如,负载平衡器可以包括接收网络路由状态更新的交换机或路由器,并且构建一个或多个路由表以确定哪些网络是可访问的,并因此确定哪些联网端点是可访问的。

在410处,负载平衡器选择一个或多个应用服务器中的一个应用服务器。该选择是基于在406处由监视服务节点提供的一个或多个应用服务器的列表以及在408处由负载平衡器确定的多个应用服务器的可用性状态。该选择可以是基于诸如可配置策略之类的一个或多个策略。该选择可以是基于由监视服务节点提供的优先级信息,或者基于包括在负载平衡器的优先级储存器内的静态或可配置优先级。该选择可以是随机选择、循环选择、加权随机选择(其中,应用服务器被选择的可能性基于分配给应用服务器的权重),或者基于某种其他机制。

在412处,负载平衡器代表客户端设备建立到所选择的应用服务器的连接。连接的建立可以是代理连接,其中,负载平衡器充当代理服务器。在这种连接中,代理服务器就像它是应用服务器一样与客户端设备建立连接,并且就像它是客户端一样与应用服务器建立连接。

图5图示了用于基于状态信息来确定处理客户端请求的应用服务器列表的示例过程500。在502处,监视服务节点监视与多个应用服务器相关联的状态数据。在一些实施例中,这包括从多个应用服务器接收一个或多个更新。更新可以作为推送式或拉取式更新来接收。推送式更新是这样的一个更新,其中,应用服务器在没有首先从服务监视节点接收请求的情况下向监视服务节点提供更新。拉取式更新是这样一种更新,其通过应用服务器对请求的响应而被提供。监视服务节点还可以监视网络流量以确定与应用节点相关联的状态数据。监视服务节点还可以从网络中的其他元件,诸如网络元件(例如,路由器、交换机、集线器、智能机架等)、其它服务器、网络中的监视代理等接收推送式或拉取式更新。状态数据可以包括硬件状态数据、软件状态数据、关于应用服务器的存储器或高速缓存的内容的信息等等。

在504处,监视服务节点基于所有主机服务器节点和/或应用服务器高于一个或多个阈值能力水平来确定实例化新的节点。例如,在cpu负载、存储器能力使用率、联网负载等中的一个或多个处于或高于一个或多个阈值的情况下,监视服务节点可以确定以在506处使得新的应用服务器被实例化。如果其他主机服务器节点当前正经受处于或高于预定阈值的负载,则可以在不同的主机服务器节点上实例化新的应用服务器。类似地,监视服务节点也可以基于能力水平来关闭应用服务器的实例化。

在508处,监视服务节点从负载平衡器接收查询。该查询指示负载平衡器从客户端设备接收的建立连接到应用的客户端请求。该查询可能包括客户端请求。该查询可以包括关于该请求的数据,诸如源和目标网络地址、协议、源和目标端口以及诸如所请求的特定文件、页面或数据的更高层信息。

在510处,监视服务节点确定来自多个应用服务器的处理客户端请求的一个或多个应用服务器。确定至少是基于多个应用服务器的状态信息以及关于请求的数据。确定可以是基于诸如加权和算法或其他算法类型之类的一个或多个算法,这类算法接受状态信息和关于客户端请求的数据,并且输出对处理客户端请求的一个或多个应用服务器的选择。监视服务节点还可以确定一个或多个应用服务器的优先级数据,诸如排名、权重或其他优先级数据。优先级数据可以用于确定一个或多个应用服务器的列表。如下所述,优先级数据也可以被提供给负载平衡器。用于确定一个或多个应用服务器的列表的算法的各个方面可以通过策略来设置。策略的一些方面可以是可配置的,如在此具体实施方式内的其他地方所讨论的。所选择的一个或多个应用服务器可以是新实例化的应用服务器。

在512处,监视服务节点向负载平衡器提供对应于一个或多个应用服务器的一个或多个标识符。标识符可以包括ip地址、mac地址、唯一地标识应用服务器的散列值等等。监视服务节点还可以提供针对一个或多个应用服务器所确定的优先级信息,诸如负载平衡器可以用来从一个或多个应用服务器的列表中进行选择的排名或权重(可以是hrw散列值)。一个或多个标识符可以是新实例化的应用服务器的标识符。

图6是可用于实施虚拟资源监视和联网策略更新的示例计算系统600的框图。计算系统600可以被部署在共享网络环境中,包括部署在数据中心、云计算环境或计算设备的其他网络中。根据各种非限制性的示例,计算系统600包括一个或多个设备,诸如服务器、储存器设备和联网设备。在一个示例配置中,计算系统600包括至少一个处理器602。计算系统600还包含允许与各种其他系统通信的(一个或多个)通信连接606。计算系统600还包括一个或多个输入设备608,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等,以及一个或多个输出设备610,诸如显示器(包括触摸屏显示器)、扬声器、打印机等,所述的输入设备和输出设备经由连接612可通信地耦合到处理器602和计算机可读介质604。

计算机可读介质604存储在(一个或多个)处理器602上可加载和可执行的计算机可执行指令,以及在这些程序的执行期间和/或与这些程序一起使用时生成的数据。在所图示的示例中,计算机可读介质604存储操作系统实例614,操作系统实例614向策略贮存器104、负载平衡逻辑106、代理服务108、服务器标识服务118、状态数据120、策略贮存器122、主机监视服务128和报告节点130提供基础的系统功能性。包括操作系统614在内的这些组件中的一个或多个可以被实例化为虚拟机、应用容器或者一些其他类型的虚拟化的实例化。

(一个或多个)处理器602可以包括(一个或多个)单核处理单元、(一个或多个)多核处理单元、中央处理单元(cpu)、图形处理单元(gpu)、通用图形处理器单元(gpgpu)或例如经由从模块或应用接口(api)的专门编程而被配置的硬件逻辑组件,以执行本文所描述的功能。在替代示例中,本公开的一个或多个功能可以但不限于由硬件逻辑组件来执行,硬件逻辑组件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)、数字信号处理单元(dsp)以及其他类型的(一个或多个)定制处理单元。例如,被配置为执行本文中所描述的功能中的一个或多个的处理单元可表示包括被嵌入fpga架构的cpu核心的混合设备。这些或其他硬件逻辑组件可以独立操作,或者在某些情况下可以由cpu驱动。在一些示例中,计算系统600的示例可以包括多个多类型的处理单元。例如,处理单元可以是一个或多个gpgpu和一个或多个fpga的组合。不同的处理单元可以具有不同的执行模型,例如,如图形处理单元(gpu)和中央处理单元(cpu)的情况一样。

取决于所使用的计算设备的配置和类型,计算机可读介质604包括易失性存储器(诸如随机存取存储器(ram))和/或非易失性存储器(诸如只读存储器(rom)、闪存等)。计算机可读介质604还可以包括附加的可移动储存器和/或不可移动储存器,包括但不限于ssd(例如,闪存)、hdd(硬盘驱动)储存器或其他类型的磁储存器、光储存器和/或可以为计算系统600提供计算机可执行指令、数据结构、程序模块和其他数据的非易失性存储的其他储存器。

例如,计算机可读介质604可以表示计算机存储器,其是计算机存储介质的一种形式。计算机可读介质包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性,可移动和不可移动介质,它们以任何过程或技术被实施用于存储诸如计算机可执行指令、数据结构、编程模块或其他数据之类的信息。计算机存储介质包括但不限于相变存储器(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存或其它存储器技术、光盘只读存储器(cd-rom)、数字多功能盘(dvd)或其他光储存器、磁带盒、磁带、磁盘储存器或其他磁性存储设备,或可用于存储信息以供计算设备访问和检索的任何其他介质。相反,通信介质可以在诸如载波之类的调制数据信号或其他传输机制中体现计算机可执行指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。

本文描述的各种过程作为结合联网功能的计算功能来执行。例如,一个计算设备或系统可以使得消息经由网络接口传输到另一个计算设备。这可以包括例如通过软件模块将指针、参数或其他数据传递给网络模块。指针、参数或其他数据可以标识存储在存储器中或寄存器中的将要被发送到另一计算设备的数据。网络模块可以包括协议栈,并且可以读取由指针、参数或其他数据来标识的数据。协议栈可以将数据封装在一帧或多帧、分组、单元或其他数据联网协议结构中。协议栈可以调用网络接口设备驱动程序,以使得电、磁或光信号沿着通信介质向诸如网关、路由器、交换机、集线器之类的网络元件的物理传输。底层网络可以将数据路由或交换到目标。目标计算设备可以经由网络接口卡接收数据,这导致中断被呈现给设备驱动程序。目标计算设备的处理器向设备驱动程序传递执行线程,这使得协议栈模块对数据在其中被接收的分组、帧和单元中的数据进行解封。协议栈使得接收到的数据被存储在存储器、寄存器或其他位置。协议栈可以将指示所接收的数据存储之处的指针、参数或其他数据传递到在目标计算设备上执行的目标软件模块。该软件模块被传递执行线程以及参数、指针或其他数据,并且从被标识位置读取数据。

示例条款

条款a.一种计算系统,包括一个或多个处理器、存储器以及存储在存储器上并可由一个或多个处理器执行以执行动作的多个编程指令。该动作包括:接收指示由负载平衡器从客户端设备接收的客户端请求的信息,客户端请求用以建立到应用的连接;至少基于多个应用服务器的高速缓存状态信息,从多个应用服务器标识处理客户端请求的一个或多个应用服务器;以及向负载平衡器提供每个都对应于一个或多个应用服务器的一个或多个标识符。

条款b.根据条款a所述的计算系统,其中高速缓存状态信息包括在多个应用服务器的本地存储器中存储的信息和多个应用服务器的应用状态信息。

条款c.根据条款a或b之一所述的计算系统,其中高速缓存状态信息包括被高速缓存在多个应用服务器上的数据的可用性,并且其中基于高速缓存状态信息来标识一个或多个应用服务器包括确定在多个应用服务器上高速缓存的数据是否与客户端请求相关。

条款d.根据条款a-c中任一条款所述的计算系统,其中动作还包括:从多个应用服务器和托管多个应用服务器和数据中心基础设施接收一个或多个更新,一个或多个更新共同地包括高速缓存状态信息和能力信息;基于一个或多个更新来计算针对给定的应用服务器组的标识符的列表;以及至少基于一个或多个更新来使得附加的应用服务器被实例化。

条款e.根据条款a-d中任一条款的计算系统,其中动作还包括:基于托管应用在其上执行的多个应用服务器的数据中心基础设施的能力信息,来标识一个或多个应用服务器,并且其中,能力信息包括能力阈值。

条款f.根据条款e所述的计算系统,其中能力信息包括中央处理单元(cpu)利用、存储器利用、储存器利用、网络利用中的一个或多个,并且其中数据中心基础设施包括从包括以下的群组中选择的一个:操作系统、软件、服务器、文件服务器、网络连接的储存器和网络设备。

条款g.根据条款e所述的计算系统,其中能力信息包括多个应用服务器的当前活动连接数、由多个应用服务器处理的每秒连接数,或多个应用服务器的在线状态中的至少一个。

条款h.根据条款e所述的计算系统,其中多个应用服务器是在一个或多个主机服务器上执行的应用服务器的虚拟化的实例化,并且其中能力信息指示虚拟化的实例化是处于活动状态还是可达状态。

条款i.一种计算系统,包括存储在存储器上并可由一个或多个处理器执行以在多个应用服务器之间执行负载平衡的一个或多个处理器、存储器和多个编程指令。负载平衡包括:从客户端设备接收对建立连接到应用的请求;将查询发送到监视服务器,查询指示客户端请求;响应于查询,从监视服务器接收一个或多个与至少基于高速缓存状态信息标识的应用相关联的一个或多个应用服务器的标识符;以及代表客户端设备建立到一个或多个应用服务器中的一个应用服务器的连接。

条款j.根据条款i所述的计算系统,其中负载平衡还包括:监视多个应用服务器的可用性状态,以及至少基于多个应用服务器的可用性状态来选择一个或多个应用服务器中的一个应用服务器。

条款k.根据条款j所述的计算系统,其中多个应用服务器的可用性状态包括托管多个应用服务器中的至少一个应用服务器的至少一个主机服务器的可用性状态。

条款l.根据条款i-k中任一条款所述的计算系统,其中负载平衡还包括:从监视服务器接收指示一个或多个应用服务器的相对排名的数据,以及至少基于排名选择一个应用服务器。

条款m.根据条款i-l中任一条款所述的计算系统,其中两个或多个标识符从监视服务器被接收,并且负载平衡还包括:随机选择两个或多个标识符中的一个标识符,选择两个或多个标识符中最大的一个标识符,其中两个或多个标识符是使用最高随机加权来生成的。

条款n.一种方法,包括由负载平衡器从客户端设备接收对连接到应用的请求,向监视服务器查询与应用相关联的多个应用服务器中的一个或多个应用服务器的列表,由监视服务器基于多个应用服务器的高速缓存状态信息来确定一个或多个应用服务器的列表,以及由负载平衡器代表客户端设备来建立到一个或多个应用服务器中的一个应用服务器的连接。

条款o.根据条款n所述的方法,还包括:由监视服务器向负载平衡器提供一个或多个应用服务器的列表和指示一个或多个应用服务器的相对优先级的信息,以及由负载平衡器至少基于指示相对优先级的信息来确定一个应用服务器。

条款p.根据条款n或o之一所述的方法,还包括至少基于确定多个应用服务器的能力信息是否满足或超过一个或多个利用阈值来确定一个或多个应用服务器的列表,其中能力信息包括应用服务器在其上被实例化的一个或多个主机服务器的硬件状态利用数据。

条款q.根据条款p所述的方法,其中多个应用服务器被实例化为多个主机服务器上的虚拟机,并且能力信息指示虚拟机中的每一个当前是否活动且可达。方法还包括:至少基于指示每个虚拟机当前是否是活动且可达的能力信息来确定一个或多个应用服务器的列表;由负载平衡器监视多个主机服务器的可用性信息;以及由负载平衡器至少基于多个主机服务器的可用性信息从一个或多个应用服务器之中选择一个应用服务器。

条款r.根据条款p所述的方法,其中能力信息从包括多个应用服务器的当前活动连接数、由多个应用服务器处理的每秒连接数以及多个应用服务器的在线状态的群组中被选择。

条款s.根据条款n-r中的任一条款所述的方法,其中高速缓存状态信息包括存储在多个应用服务器的本地存储器中的信息,并且方法还包括:至少基于存储在多个应用服务器的本地存储器中的一些或全部信息的重叠高速缓存状态与客户端请求的相关性,来确定一个或多个应用服务器的列表。

条款t.根据条款n-s中任一条款所述的方法,还包括:从多个应用服务器接收通知,通知指示多个应用服务器的高速缓存状态信息。

条款u.一种计算系统,包括:用于接收指示由负载平衡器从客户端设备接收的客户端请求的信息的装置,客户端请求用以建立到应用的连接;用于至少基于多个应用服务器的高速缓存状态信息从多个应用服务器中标识处理客户端请求的一个或多个应用服务器的装置;以及用于向负载平衡器提供每个都对应于一个或多个应用服务器的一个或多个标识符的装置。

条款v.根据条款u所述的计算系统,其中高速缓存状态信息包括在多个应用服务器的本地存储器中存储的信息和多个应用服务器的应用状态信息。

条款w.根据条款u或v之一所述的计算系统,其中高速缓存状态信息包括高速缓存在多个应用服务器上的数据的可用性,并且其中用于基于高速缓存状态标识一个或多个应用服务器的装置信息包括用于确定在多个应用服务器上高速缓存的数据是否与客户请求相关的装置。

条款x.根据条款u-w中任一条款所述的计算系统,还包括:用于从多个应用服务器和托管多个应用服务器的数据中心基础设施接收一个或多个更新的装置,一个或多个更新共同包括高速缓存状态信息和能力信息;用于基于一个或多个更新来计算针对给定的应用服务器组的标识符的列表的装置;以及用于使得至少基于一个或多个更新来实例化附加的应用服务器的装置。

条款y.根据条款u-x中的任一条款所述的计算系统,还包括:用于基于托管应用在其上执行的多个应用服务器的数据中心基础设施的能力信息来标识一个或多个应用服务器的装置,并且其中,能力信息包括能力阈值。

条款z.根据条款y所述的计算系统,其中能力信息包括中央处理单元(cpu)利用、存储器利用、储存器利用、网络利用中的一个或多个,并且其中数据中心基础设施包括从包括如下的群组中选择的一个:操作系统、软件、服务器、文件服务器、网络连接的储存器和网络设备。

条款aa.根据条款y所述的计算系统,其中能力信息包括多个应用服务器的当前活动连接数、由多个应用服务器处理的每秒连接数或多个应用服务器的在线状态中的至少一个。

条款ab.根据条款y所述的计算系统,其中多个应用服务器是在一个或多个主机服务器上执行的应用服务器的虚拟化的实例化,并且其中能力信息指示虚拟化的实例化处于活动状态或可达状态。

条款ac.一种计算系统,包括:用于从客户端设备接收对将建立连接到应用的请求的装置;用于向监视服务器发送查询的装置,查询指示客户端请求;用于响应于查询从监视服务器接收与至少基于高速缓存状态信息来标识应用相关联的一个或多个应用服务器的一个或多个标识符的装置;以及用于代表客户端设备来建立到一个或多个应用服务器的一个应用服务器的连接的装置。

条款ad.根据条款ac所述的计算系统,还包括:用于监视多个应用服务器的可用性状态的装置;以及用于至少基于多个应用服务器的可用性状态来选择一个或多个应用服务器中的一个应用服务器的装置。

条款ae.根据条款ad所述的计算系统,其中多个应用服务器的可用性状态包括托管多个应用服务器中的至少一个应用服务器的至少一个主机服务器的可用性状态。

条款af.根据条款ac-ae中任一条款所述的计算系统,还包括:用于从监视服务器接收指示一个或多个应用服务器的相对排名的数据的装置;以及用于至少基于排名来选择一个应用服务器的装置。

条款ag.根据条款ac-af中的任一条款所述的计算系统,其中,两个或多个标识符从监视服务器被接收,并且计算系统还包括:用于随机选择两个或多个标识符中的一个标识符的装置;和用于选择两个或多个标识符中最大的一个的装置,其中两个或多个标识符是使用最高随机加权来生成的。

条款ah.一种计算系统,包括:用于由负载平衡器从客户端设备接收对连接到应用的请求的装置;用于向监视服务器查询与应用相关联的多个应用服务器中的一个或多个应用服务器的列表的装置;用于由监视服务器基于多个应用服务器的高速缓存状态信息来确定一个或多个应用服务器的列表的装置;以及用于由负载平衡器代表客户端设备来建立到一个或多个应用服务器的一个应用服务器的连接的装置。

条款ai.根据条款ah所述的计算系统,还包括:用于由监视服务器向负载平衡器提供一个或多个应用服务器的列表以及指示一个或多个应用服务器的相对优先级的信息的装置;以及用于由负载平衡器至少基于指示相对优先级的信息来确定一个应用服务器的装置。

条款aj.根据条款ah或ai之一所述的计算系统,还包括:用于至少基于确定多个应用服务器的能力信息是否满足或超过一个或多个利用阈值来确定一个或多个应用服务器的列表的装置,其中,能力信息包括应用服务器在其上被实例化的一个或多个主机服务器的硬件状态利用数据。

条款ak.根据条款aj所述的计算系统,其中多个应用服务器被实例化为多个主机服务器上的虚拟机,并且能力信息指示虚拟机中的每一个虚拟机当前是否是活动的并且可达的。计算系统还包括:用于至少基于指示每个虚拟机当前是否是活动的并且可达的能力信息来确定一个或多个应用服务器的列表的装置;用于由负载平衡器监视多个主机服务器的可用性信息的装置;以及用于由负载平衡器至少基于多个主机服务器的可用性信息从一个或多个应用服务器之中选择一个应用服务器的装置。

条款al.根据条款aj所述的计算系统,其中,能力信息从包括多个应用服务器的当前活动连接数、由多个应用服务器处理的每秒连接数以及多个应用服务器的在线状态的群组中被选择。

条款am.根据条款ah-al中的任一条款所述的计算系统,其中,高速缓存状态信息包括存储在多个应用服务器的本地存储器中的信息,并且计算系统还包括:用于至少基于存储在多个应用服务器的本地存储器中的一些或全部信息的重叠高速缓存状态与客户端请求的相关性来确定一个或多个应用服务器的列表的装置。

条款an.根据条款ah-am中的任一条款所述的计算系统,还包括:用于从多个应用服务器接收通知的装置,通知指示多个应用服务器的高速缓存状态信息。

结论

尽管已经用特定于结构特征和/或方法动作的语言描述了技术,但是应该理解,所附权利要求不一定限于所描述的特征或动作。相反,这些特征和行为被描述为示例实现。

上面描述的所有方法和过程可以具体化在由一个或多个通用计算机或处理器执行的软件代码模块中,并且经由软件代码模块被完全自动化。代码模块可以被存储在任何类型的计算机可读存储介质或其他计算机存储设备中。一些或全部方法可以替代地具体化在专用计算机硬件中。

除非另有特别说明,否则诸如“能”、“能够”,“可能”,“可以”之类的条件语言在上下文中被理解为表示某些示例包括某些特征、元素和/或步骤,而其他示例不包括这些特征、元素和/或步骤。因此,这样的条件语言通常不旨在暗示某些特征、元素和/或步骤以任何方式要求于一个或多个示例,或暗示一个或多个示例必然包括用于在具有或不具有用户输入或提示的情况下决定在任何特定示例中是否要包括或要执行某些特征、元件和/或步骤的逻辑。除非另有特别说明,诸如短语“x、y或z中的至少一个”的结合语言应被理解为表示项、术语等可以是x、y或z之一或其组合。

本文中描述和/或附图中描绘的流程图中的任何例程描述、元件或框应该被理解为潜在地表示包括用于实施例程中的特定逻辑功能或元素的一个或多个可执行指令的代码的模块、段或部分。本领域技术人员应当理解,替代实现被包括在本文中描述的示例的范围内,其中,元素或功能可以被删除,或者可以与所示或所讨论不同的顺序被执行,包括基本同步地或以相反顺序地执行,这取决于所涉及的功能性。应该强调,可以对上述示例做出许多变化和修改,其元素被理解为是在其他可接受的示例当中。所有这些修改和变化都旨在于本文中被包括在本公开的范围内并且由以下权利要求保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1