CN105122772B - 一种通过头部交换服务器状态和客户端信息的方法及设备 - Google Patents
一种通过头部交换服务器状态和客户端信息的方法及设备 Download PDFInfo
- Publication number
- CN105122772B CN105122772B CN201380066239.2A CN201380066239A CN105122772B CN 105122772 B CN105122772 B CN 105122772B CN 201380066239 A CN201380066239 A CN 201380066239A CN 105122772 B CN105122772 B CN 105122772B
- Authority
- CN
- China
- Prior art keywords
- request
- server
- client
- health
- decision
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 31
- 230000036541 health Effects 0.000 claims abstract description 63
- 238000004891 communication Methods 0.000 claims abstract description 36
- 238000003860 storage Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 230000000737 periodic effect Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 39
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 230000003862 health status Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000036449 good health Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
通过头部交换服务器健康和客户端信息以用于请求管理。服务器和请求管理模块和/或客户端和请求管理模块之间的标准化或专有协议通信中的头部可以被用来交换服务器健康和客户端信息。交换的服务器健康和/或客户端信息可以被用来对传入的请求进行扼流、路由和/或负载平衡。由客户端通过头部交换所指定的规则也可以用于扼流、路由和/或负载平衡决策中。
Description
背景技术
现代的数据通信架构通常涉及“服务器场”,服务器场是出于各种目的来管理数据的存储、处理,以及交换的服务器的集合。许多服务越来越多地被作为web应用、托管应用来提供,这些应用可以被用户通过浏览器或类似的瘦客户端访问,而不会给用户带来本地安装、更新、兼容性问题等等负担。如此,服务器场可包括提供用于生产力、通信、数据分析、数据存储以及类似服务的web应用的高达数千服务器。客户端应用(瘦或胖) 通过“请求”与托管应用进行交互。例如,作为web应用提供的文字处理应用程序可以接收来自客户端应用的打开文档的请求,在联网的存储中找出该文档,检索其内容,并呈现在客户端应用处。另一示例可以是“保存”请求。当用户完成时,他们可以选择客户端应用上的“保存”控件,这可以将保存请求发送到web应用,从而造成所存储的文档的更新。
由于多个服务器可能涉及该web应用,因此传入的请求需要被定向到正确的服务器,以便所请求的任务可以被完成。请求管理是管理方法中的一种,该方法通过对照请求来评估逻辑规则以便确定要采取什么动作以及场中的哪一个或多个服务器(如果有的话)应该处理该请求,来帮助服务器场管理传入的请求。
传统网络负载平衡器设备是用于路由请求的相对昂贵的专用硬件设备。执行多层路由,在网络增长时传统路由器可能产生瓶颈,从而导致网络话务减慢。此外,常规路由还基于静态规则,不能考虑服务器、请求、网络负载的动态变化。
发明内容
提供本发明内容是为了以精简的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在排他地标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例涉及通过头部交换服务器健康和客户端信息以用于请求管理。根据某些实施例,服务器和基于云的服务架构中的诸如路由器或扼流器之类的管理模块之间的标准化或专有协议通信中的头部可以被用来交换服务器健康和客户端信息。交换的服务器健康和/或客户端信息可以用于对传入的请求进行扼流、路由和/或负载平衡。请求路由也可以基于由客户端通过头部交换所指定的规则来实现。
通过阅读下面的“具体实施方式”并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的一般描述和下面的详细描述只是说明性的,并且不限制所要求保护的各方面。
附图简述
图1示出了根据某些实施例的示例网络图,其中可通过服务通信头部在请求管理实体和服务器之间交换服务器健康信息;
图2示出了根据其他实施例的示例网络图,其中可通过请求头部在请求管理实体和客户端之间交换客户端信息;
图3示出了根据各实施例的请求管理器的功能分解图;
图4在概念上示出了根据某些实施例的在专用模式部署中的示例服务器场基础设施;
图5在概念上示出了根据其他实施例的在集成模式部署中的示例服务器场基础设施;
图6是其中可以实现根据实施例的系统的网络环境;
图7是其中可以实现实施例的示例计算操作环境的框图;以及
图8示出了根据各实施例的通过头部交换服务器健康和客户端信息以用于请求管理的过程的逻辑流程图。
具体实施方式
如上文简要描述的,服务器和管理模块(例如,路由器或扼流器)之间的基于超文本传输协议(HTTP)或类似协议的通信中的头部可以被用来交换服务器健康和客户端信息,以便可以基于服务器健康信息、客户端信息等来对请求进行扼流/路由/负载平衡。
在下面的详细描述中,将参考构成本发明的一部分的附图,在附图中,通过例图,示出了特定实施例或示例。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本发明的精神或范围。因此,下面的具体实施方式不应以限制性的意义来理解,而是本公开的范围是由所附权利要求及其等效方案来定义的。
尽管在结合在计算设备上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施例,但是本领域的技术人员会认识到各方面也可以结合其它程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员可以明白,各实施例可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并且编码包括用于使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。计算机可读存储介质是计算机可读存储器设备。例如,计算机可读存储介质可经由易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘和类似物理介质中的一个或多个来实现。
贯穿本说明书,术语“平台”可以是用于作为请求管理的一部分在服务器通信中交换头部以传达服务器健康和客户端信息的软件和硬件组件的组合。平台的示例包括,但不仅限于,在多个服务器上执行的托管服务,在单个计算设备上执行的应用,以及类似系统。术语“服务器”一般是指通常在联网环境中执行一个或多个软件程序的计算设备。下面提供了有关这些技术和示例操作的更多细节。
参考图1,图示100示出了根据某些实施例的示例网络图,其中可通过服务通信头部在请求管理实体和服务器之间交换服务器健康信息。图示100 所示出的组件和环境只是出于说明的目的。各实施例可以在使用各种计算设备和系统、硬件和软件的各种本地、联网的、基于云的和类似计算环境中实现。
在图示100中所示出的示例环境中,服务器112可以是例如,向通过在客户端设备102和104上执行的客户端应用(例如,浏览器)访问服务的用户提供一个或多个托管服务的服务器场或类似基础设施(例如,云108) 的一部分。服务器106可以接收来自客户端应用的请求,并将它们转发到被配置成将请求路由到正确服务器的请求管理服务器104。
在一个示例场景中,诸如美国华盛顿州雷德蒙市的微软公司的之类的协作服务可以作为服务提供。协作服务可以允许对各种类型的文档的存储、共享以及编辑,等等。如此,用户可以通过他们的客户端设备上的浏览器访问协作服务,查看文档,编辑文档,以及将它保存在其服务器位置。这些动作可以通过由浏览器向服务器106提交的并由请求管理服务器104路由的请求来促进。云108中的不同服务器可以负责服务的不同方面。例如,一个服务器可以负责某些类型的文档的存储,而另一服务器可以负责促进编辑功能。另外,多个服务器还可以负责相同任务以提供容量、冗余等等。请求管理服务器104可以基于服务器的可用性、健康状况、请求类型等等,通过路由器110向将请求发送到正确的服务器。在某些实施例中,路由(以及扼流和/或负载平衡功能)可以被集成到路由器110中,而不是请求管理服务器104中。
在决定哪一个服务器向请求管理服务器发送请求时,如上文所讨论的,可以考虑服务器健康状况。服务器健康状况可以由各单独服务器以分数或更详细的信息(118)的形式,在服务通信116的头部114中作为请求管理服务器104和服务器112之间的正常通信交换的一部分,提供给请求管理服务器104。
作为例行操作的一部分,服务器112及服务的其他组件可以周期性地或按需交换服务通信116。服务通信116可包括头部114。取决于通信类型,头部的示例可包括HTTP头部、Sharepoint头部,等等。在一个示例系统中,每一服务器都可以确定其健康状况(例如,处理器容量、存储器容量、带宽、当前负载,等等),并将健康状况传送到请求管理服务器104。
健康信息118或分数可以是可由管理员自定义的。例如,健康状况可以是单个分数、多个分数(对于健康量度的多个组或健康量度中的每一个),或更详细的信息(健康量度值)。该信息可以在头部中发送到请求管理服务器104。在决定阻塞还是请求、向哪一个服务器路由请求、以及如何执行负载平衡时,请求管理服务器104(或路由器110)可以考虑健康信息。
健康信息的基于头部的交换以及路由可以是应用智能的,且请求路由 (或扼流)被基于请求所关联的应用来排定优先次序。例如,与具有比另一应用更高的资源需求的应用相关联的请求的优先级可以被降低。类似地,如果承租人使用特定应用(例如,生产力应用),则在被定向到与该承租人相关联的服务器的请求与承租人的首选应用相关联的情况下,它们可以优先。
在其他实施例中,路由(和/或扼流)可以基于托管的功能。例如,不同的功能可以被托管在相同服务器上,且针对这些功能中的一者或多者的请求可被排定优先次序。示例实现可以使访问团队站点的请求优先于下载大文件的请求,等等。类似地,基于功能的路由可以在多个服务器之间执行(即,相对于提供其他功能的其它服务器,可以优先选择提供某种功能的服务器)。
基于健康分数的、应用智能的以及基于功能的路由特征可以例如按可由管理员自定义的各种方式组合。根据某些实施例,请求管理服务器104 和/或路由器110可以被实现为软件、硬件或软件和硬件的组合。
图2示出了根据其他实施例的示例网络图,其中可通过请求头部在请求管理实体和客户端之间交换客户端信息。图示200显示类似于图1中的基于云的示例基础设施。服务器212可以执行与提供一个或多个托管服务相关联的各种任务,并通过云208内的路由器210与请求管理服务器204 进行通信。请求管理服务器204可以从服务器206接收请求220,服务器 206又可以接收来自在例如计算设备202和204上执行的客户端应用的多个请求。
每一请求都可包括头部214,且每一头部214都可包括,除其他信息之外,客户端信息222。客户端信息222可以标识客户端和/或请求。例如,客户端可以被标识为真正的用户或机器人。请求可以是“打开”请求、“保存”请求以及与由服务器212所提供的服务相关联的任何其他任务。
可以基于规则或脚本在请求管理服务器204处作出路由/扼流决策。如果基于规则作出决策,则客户端应用可以被允许发送有关它们本身和/或请求的信息,以便路由器也可以基于客户端信息作出决策。例如,如果请求是机器人请求,则可以阻止它或将其发送到低健康服务器,因为它可能被重复。另一方面,从文字处理程序到协作服务器的“保存”请求可以是高优先级,因为如果请求不被正确地并且及时地处理,则用户可能会丢失他们的文档。
根据某些实施例,路由和扼流组件可以在其创建期间针对每一应用来配置。组件可以在其他服务(例如,协作)代码之前执行。示例系统可以是可缩放的,其中多个路由器管理服务器组(例如,分层结构)。在多路由器环境中,路由/扼流规则(或脚本)可以被提供给一个路由器并被自动地传播到其它路由器。类似地,上文所讨论的客户端信息也可以被传播到所有路由器。
在某些实施例中,请求管理服务器可以内部跟踪两组服务器,(1)由场本身所定义的一组服务器,这些服务器可能不能被手动地移除或添加,但是对场的更改可得到反映。可以按web应用来修改每一服务器的可用性。 (2)由管理员所定义的自定义的一组机器,它们可以被手动地移除或添加,且可以按web应用修改每一机器的可用性。
机器组的这一区别可以允许容易使用,带有可选的自定义。如果管理员不需要指定所有服务器,用于启用路由的输入栏可以最小。另外,附加服务器的自定义可能是专用路由场场景的需要。路由目标列表中的每一服务器的健康状况可以被用来执行加权的负载平衡。
为了将请求路由到最终目标,一旦确定,就可以创建新请求。可以将传入的请求复制到此新请求。这可包括值,诸如:头部、cookie、请求正文、等等。可以将来自服务器的响应复制到传出的流,该传出的流也可以包括值,诸如:头部、cookie、以及响应正文,等等。
图3示出了根据各实施例的请求管理器的功能分解图。图示300显示请求管理器(RM)330,其任务是决定请求是否可以被允许进入服务,如果是,则请求可以被发送到哪一个WFE服务器。这两个决策可以由RM 330 的三个主要功能部件(请求路由(RR)332、请求扼流和优先(RTP)334 以及请求负载平衡(RLB)336)作出。在某些实施例中,RM 330可以在每个web应用的基础上执行请求管理。
在一个示例配置中,RR 332可以选择请求可以被发送到的WFE服务器。RTP 334可以过滤WFE来选择足够健康以接受请求的那些(例如,处理器容量、存储器容量,等等)。RLB336可以选择单个WFE服务器,来基于加权方案路由请求。除诸如网络带宽、请求类型以及类似事物之类的其他考虑事项之外,负载平衡特征也可以考虑服务器健康。
图4在概念上示出了根据某些实施例的在专用模式部署中的示例服务器场基础设施。
根据各实施例的RM可以支持两种部署模式:专用模式和集成模式。取决于与哪一种模式更适用于特定配置有关的管理员决策,可以使用任一模式而没有限制。例如,可以同时使用两种模式。专用RM部署可以静态地路由到服务器场中的任何WFE,而非服务器场中的特定WFE。然后,在 WFE上运行的RM随后可以基于场级信息,诸如WFE健康,来确定场内的它们中的哪一个可以处理请求。
专用模式部署,如图示400所示,可包括只专用于执行RM职责的一组WFE 452。这是劳动的逻辑划分。专用RM WFE 452可以被置于它们自己的RM场450中,RM场450位于硬件负载平衡器(HLB)442、444、446 和正常SP场460、470。HLB 442、444、446可以将所有请求发送到RM WFE 452。在这些WFE上执行的RM可以决定请求(如果有的话)可以被发送到哪一个服务(SP)WFE 462、472,并将它们发送到那里而没有任何更多服务处理。SP WFE 462、472可以在处理请求时执行它们的正常任务,然后通过RM WFE 452将响应发回到客户端。
SP场460和460可以被配置成与任何其他SP场执行相同工作。它们的与正常的服务场的差异可以是:RM WFE启用了RM,其中在正常的服务场中,WFE可能禁用RM。当物理机器容易地可用时,专用模式在较大规模的部署中可能是有利的,因为RM处理和服务处理可能不必为资源竞争,而如果它们在同一台机器上执行则它们会竞争。
图5在概念上示出了根据其他实施例的在集成模式部署中的示例服务器场基础设施。图示500显示。
在集成模式部署中,如图示500所示,服务(SP)场560内的所有正常WFE都可以执行RM。如此,HLB(542)可以向所有WFE 562发送请求。当WFE接收到请求时,RM可以决定是允许它被本地处理,还是将它路由到不同的WFE,还是完全拒绝它被处理。
当物理机器不容易地可用时,集成模式在较小规模的部署中可能是有利的。此模式可以允许RM和服务应用的其余部分在所有机器上执行,而非要求专用于每一个的机器。在某些实施例中,RM可以具有若干可配置的部分,这些部分可以被分组到两个主要类别:一般设置和决策信息。一般设置可包括涵盖作为整体特征的参数,诸如启用/禁用RR和RTP。决策信息可包括在路由和扼流过程中使用的信息,诸如路由和扼流规则(或脚本)。
图1到5中的示例场景和模式被示为带有特定的组件、通信协议、数据类型以及配置。各实施例不仅限于根据这些示例配置的系统。在使用此处所描述的原理来实现通过头部交换服务器健康和客户端信息以用于请求管理时,可以使用其他协议、配置、头部等等。
图6是其中可以实现根据实施例的系统的联网环境。本地以及远程资源可以通过一个或多个服务器614或诸如托管服务之类的单个服务器(例如,web服务器)616来提供。请求管理应用,诸如路由应用可以在管理服务器(例如,服务器614)上执行,管理服务器通过网络610将来自诸如智能电话613、平板设备612或膝上型计算机611之类的各单独计算设备(“客户端设备”)上的客户端应用的请求定向到正确的服务器(例如,数据库服务器618)。
如上文所讨论的,可以通过头部交换服务器健康和客户端信息以用于请求管理。可以在路由器处基于规则或脚本来作出路由/扼流决策。如果基于规则作出决策,则客户端可以被允许发送有关它们本身和/或请求的信息,以便路由器也可以基于客户端信息作出决定。客户端设备611-613可以允许对在如前面所讨论的远程服务器(例如,服务器614中的一个)上执行的应用的访问。服务器可以直接或通过数据库服务器618从数据存储619 检索或向其存储相关数据。
网络610可包括服务器、客户机、因特网服务供应商以及通信介质的任何拓扑结构。根据各实施例的系统可以具有静态或动态拓扑结构。网络610可包括诸如企业网络等安全网络、诸如无线开放网络等非安全网络、或因特网。网络610还通过诸如公共交换电话网络(PSTN)或蜂窝网络等其他网络来协调通信。此外,网络610可包括诸如蓝牙或类似网络等短程无线网络。网络610提供此处描述的节点之间的通信。作为示例而非限制,网络610可以包括例如声学、射频、红外线和其它无线介质等无线介质。
可以使用计算设备、应用、数据源、以及数据分发系统的许多其他配置来通过服务器通信中的头部交换服务器健康和客户端信息以用于请求管理。此外,图6中所讨论的联网环境只是为了说明。各实施例不仅限于示例应用、模块或过程。
图7及相关联讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。参考图7,该图示出了诸如计算设备700之类的根据各实施例的应用的示例计算操作环境的框图。在基本配置中,计算设备700可包括至少一个处理单元702和系统存储器704。计算设备700还可包括在执行程序时协作的多个处理单元。取决于计算设备的确切配置和类型,系统存储器704可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。系统存储器704通常包括适于控制平台的操作的操作系统705,例如来自华盛顿州雷蒙德市的微软公司的和 WINDOWS操作系统。系统存储器704还可以包括一个或多个软件应用,诸如程序模块706、请求管理应用722、以及路由模块724。
根据各实施例,请求管理应用722可以管理传入的请求,包括将请求定向到准确的服务器、服务器状态信息的维护、路由/扼流/负载平衡规则和脚本的管理。路由模块724可以基于通过与服务器和客户端应用通信中的头部接收到的服务器健康状况和/或客户端信息来路由传入的请求。该基本配置在图7中通过虚线708内的那些组件示出。
计算设备700可以具有附加特征或功能。例如,计算设备700还可包括附加数据存储设备(可移动和/或不可移动),诸如,例如磁盘、光盘或磁带。在图7中通过可移动存储709和不可移动存储710示出这样的附加存储。计算机可读存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质是计算机可读存储器设备。系统存储器704、可移动存储709和不可移动存储710都是计算机可读存储介质的示例。计算机可读存储介质包括但不限于,RAM、ROM、 EEPROM、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光学存储,磁带盒、磁带、磁盘存储或其它磁存储设备,或能用于存储所需信息且能够由计算设备700访问的任何其它介质。任何这样的计算机可读存储介质都可以是计算设备700的一部分。计算设备700也可具有输入设备712,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备和类似输入设备。还可以包括输出设备714,诸如显示器、扬声器、打印机和其它类型的输出设备。这些设备在本领域中公知且无需在此处详细讨论。
计算设备700还可以包含允许该设备与其它设备716通信的通信连接718,诸如通过分布式计算环境中的无线网络、卫星链路、蜂窝链路和类似机制。其它设备718 可包括执行通信应用的计算机设备、存储服务器和类似设备。通信连接716是通信介质的一个示例。通信介质可以包括计算机可读指令、数据结构、程序模块、或者诸如载波或其它传输机制等的已调制数据信号中的其它数据,并且包括任何信息传递介质。术语“已调制数据信号”指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、射频、红外及其他无线介质之类的无线介质。
各示例实施例还包括各种方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。
另一可任选方式是该方法的各个操作中的一个或多个操作在结合一个或多个人类操作者执行该方法的各个操作中的某一些的情况下被执行。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
图8示出了根据各实施例的通过头部交换服务器健康和客户端信息以用于请求管理的过程的逻辑流程图。在某些示例中,过程800可以通过诸如在服务器场管理中的路由器之类的请求管理应用来实现。
过程800可以以操作810开始,在该操作810中,可以分别在来自服务基础设施中的服务器的服务通信的头部中或在来自一个或多个客户端的请求通信的头部中,接收服务器健康信息和/或客户端信息(例如,客户端类型)。
在操作820中,可以从客户端接收请求,后面跟着操作830,在该操作 830中,可以基于评估接收到的服务器健康和/或客户端信息,选择接收请求的服务器。在操作840中,请求可以被路由、扼流或负载平衡到选定的服务器。
根据某些实施例的基于服务器健康和/或客户端信息的请求管理可以允许高级路由和扼流行为。这样的行为的示例可包括将请求路由到带有良好健康分数的web服务器,并防止对健康较差的web服务器的影响;通过扼流其他类型的请求(例如,爬行器)来优先处理重要请求(例如,最终用户话务);基于诸如主机名或客户端IP地址之类的HTTP元素,将请求路由到web服务器;基于类型(例如,搜索,客户端应用,等等),将话务路由到特定服务器;标识并阻止有害请求,使得web服务器决不会处理它们;将繁重的请求路由到带有更多资源的web服务器;以及,通过路由到体验到问题的特定机器和/或从特定客户端计算机路由,允许更加容易的故障诊断。
一些实施例可以在包括通信模块、存储器以及处理器的计算设备中实现,其中处理器结合存储在存储器中的指令执行如上文所描述的方法或类似方法。其他实施例可以实现为在其上存储了用于执行如上文所描述的方法或类似方法的指令的计算机可读存储介质。
过程800中包括的操作只是为了说明。根据各实施例的通过头部交换服务器健康和客户端信息以用于请求管理可以使用此处所描述的原理,通过具有更少或更多步骤的类似过程来实现,也可以按不同的操作次序来实现。
以上说明书、示例和数据提供了对各实施例的组成的制造和使用的全面描述。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施方式的示例形式而公开的。
Claims (12)
1.一种在计算设备上执行的用于在请求管理中通过头部交换服务器健康和客户端信息的方法,所述方法包括:
在一个或多个请求管理器处从服务基础设施中的一个或多个服务器接收服务通信的头部中服务器健康信息;
在所述一个或多个请求管理器处从客户端接收请求,其中所述请求在所述请求的头部中包括客户端类型信息,所述客户端类型信息包括所述客户端的指示,其中:
如果所述服务基础设施的配置处于专用模式部署,则所述一个或多个请求管理器专用于执行请求管理任务,并且
如果所述服务基础设施的所述配置处于集成模式部署,则所述一个或多个请求管理器被集成到所述一个或多个服务器;
在所述一个或多个请求管理器处,基于接收到的服务器健康信息和所述客户端类型信息中的至少一者从所述一个或多个服务器中选择要将接收到的请求路由到的服务器,其中基于所述客户端类型信息选择服务器包括阻止所述请求或将所述请求发送到低健康服务器,以及基于所述客户端类型信息将所述请求发送到具有高优先级的服务器;以及
在所述一个或多个请求管理器处执行以下各项中的一者或多者:将所述请求路由到所选服务器、扼流所述请求、以及负载平衡所述请求。
2.如权利要求1所述的方法,其特征在于,进一步包括:
以单个健康分数、多个健康分数、以及健康度量值中的一者的形式来接收所述服务器健康信息。
3.如权利要求1所述的方法,其特征在于,进一步包括:
基于规则和脚本中的一者作出来自以下各项的组中的至少一者决策:路由决策、扼流决策、以及负载平衡决策。
4.如权利要求1所述的方法,其特征在于,进一步包括:
使得所述服务器健康信息能够被管理员自定义。
5.如权利要求1所述的方法,其特征在于,所述服务基础设施是包括接收所述服务器健康信息和所述客户端类型信息的所述一个或多个请求管理器的可缩放系统。
6.一种用于在请求管理中通过头部使用服务器健康和客户端信息的交换的计算设备,所述计算设备包括:
被配置成与服务基础设施中的一个或多个服务器和一个或多个客户端进行通信的通信模块;
被配置为存储指令的存储器;以及
耦合到所述存储器的处理器,所述处理器被配置成结合存储在所述存储器中的所述指令来执行请求管理应用,其中所述请求管理应用被配置成:
在来自所述一个或多个服务器的周期性服务通信和按需服务通信中的一者的头部中接收服务器健康信息;
接收来自客户端的请求,其中所述请求包括客户端类型信息;
响应于所述服务基础设施的配置处于专用模式部署,通过专用于执行请求管理任务的一个或多个请求管理器来管理所述请求;
响应于所述服务基础设施的所述配置处于集成模式部署,通过被集成到所述一个或多个服务器的一个或多个请求管理器来管理所述请求;
基于接收到的服务器健康信息和所述客户端类型信息从所述一个或多个服务器中选择所接收到的请求要被路由到的服务器,其中通过以下操作基于所述客户端类型信息而选择服务器:
阻止所述请求或将所述请求发送到低健康服务器,以及基于所述客户端类型信息将所述请求发送到具有高优先级的服务器;以及
以下各项中的一者或多者:将所述请求路由到所选服务器、扼流所述请求、以及负载平衡所述请求。
7.如权利要求6所述的计算设备,其特征在于,所述请求管理应用进一步被配置成:
在提供来自所述客户端的所述请求的通信的头部中,接收所述客户端类型信息;以及
基于接收到的客户端类型信息,作出来自包括以下各项的组中的至少一者决策:路由决策、扼流决策、以及负载平衡决策。
8.如权利要求7所述的计算设备,其特征在于,所述请求管理应用进一步被配置成:
使用一个或多个规则来作出所述决策,其中所述一个或多个规则是从管理员和所述客户端中的一者接收到的并被传播到所述服务基础设施中的多个请求管理器。
9.如权利要求6所述的计算设备,其特征在于,所述计算设备是请求管理服务器和路由器中的一者。
10.一种带有存储在其上的用于在请求管理中通过头部交换服务器健康和客户端信息的指令的计算机可读存储器设备,所述指令包括:
从服务基础设施中的一个或多个服务器在所述服务器和一个或多个请求管理器之间的服务通信的头部中接收以下中的一者的形式的服务器健康信息:单个健康分数、多个健康分数、以及健康度量值;
接收来自客户端的请求,其中所述请求在所述请求的头部中包括标识客户端类型的客户端类型信息;
响应于所述服务基础设施的配置处于专用模式部署,通过专用于执行请求管理任务的所述一个或多个请求管理器来管理所述请求;
响应于所述服务基础设施的所述配置处于集成模式部署,通过被集成到所述服务器的所述一个或多个请求管理器来管理所述请求;
使用规则和脚本中的一者基于接收到的服务器健康信息和所述客户端类型信息中的至少一者,作出来自包括以下各项的组中的至少一者决策:路由决策、扼流决策、以及负载平衡决策,其中基于所述客户端类型信息作出路由决策包括:阻止所述请求或将所述请求发送到低健康服务器,以及将所述请求发送到具有高优先级的服务器;以及
以下各项中的一者或多者:将所述请求路由到所选服务器、扼流所述请求、以及负载平衡所述请求。
11.一种用于在请求管理中通过头部交换服务器健康和客户端信息的方法,所述方法包括:
从服务基础设施中的一个或多个服务器在所述服务器和一个或多个请求管理器之间的服务通信的头部中接收以下中的一者的形式的服务器健康信息:单个健康分数、多个健康分数、以及健康度量值;
接收来自客户端的请求,其中所述请求在所述请求的头部中包括标识客户端类型的客户端类型信息;
响应于所述服务基础设施的配置处于专用模式部署,通过专用于执行请求管理任务的所述一个或多个请求管理器来管理所述请求;
响应于所述服务基础设施的所述配置处于集成模式部署,通过被集成到所述服务器的所述一个或多个请求管理器来管理所述请求;
使用规则和脚本中的一者基于接收到的服务器健康信息和所述客户端类型信息中的至少一者,作出来自包括以下各项的组中的至少一者决策:路由决策、扼流决策、以及负载平衡决策,其中基于所述客户端类型信息作出路由决策包括:阻止所述请求或将所述请求发送到低健康服务器,以及将所述请求发送到具有高优先级的服务器;以及
以下各项中的一者或多者:将所述请求路由到所选服务器、扼流所述请求、以及负载平衡所述请求。
12.一种用于在请求管理中通过头部使用服务器健康和客户端信息的交换的装置,所述装置包括:
用于从服务基础设施中的一个或多个服务器在所述服务器和一个或多个请求管理器之间的服务通信的头部中接收以下中的一者的形式的服务器健康信息的单元:单个健康分数、多个健康分数、以及健康度量值;
用于接收来自客户端的请求的单元,其中所述请求在所述请求的头部中包括标识客户端类型的客户端类型信息;
用于响应于所述服务基础设施的配置处于专用模式部署,通过专用于执行请求管理任务的所述一个或多个请求管理器来管理所述请求的单元;
用于响应于所述服务基础设施的所述配置处于集成模式部署,通过被集成到所述服务器的所述一个或多个请求管理器来管理所述请求的单元;
用于使用规则和脚本中的一者基于接收到的服务器健康信息和所述客户端类型信息中的至少一者,作出来自包括以下各项的组中的至少一者决策的单元:路由决策、扼流决策、以及负载平衡决策,其中基于所述客户端类型信息作出路由决策包括:阻止所述请求或将所述请求发送到低健康服务器,以及将所述请求发送到具有高优先级的服务器;以及
用于执行以下各项中的一者或多者的单元:将所述请求路由到所选服务器、扼流所述请求、以及负载平衡所述请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/716,913 | 2012-12-17 | ||
US13/716,913 US9185006B2 (en) | 2012-12-17 | 2012-12-17 | Exchange of server health and client information through headers for request management |
PCT/US2013/075655 WO2014099906A1 (en) | 2012-12-17 | 2013-12-17 | Exchange of server status and client information through headers for request management and load balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105122772A CN105122772A (zh) | 2015-12-02 |
CN105122772B true CN105122772B (zh) | 2019-02-01 |
Family
ID=49956373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380066239.2A Active CN105122772B (zh) | 2012-12-17 | 2013-12-17 | 一种通过头部交换服务器状态和客户端信息的方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9185006B2 (zh) |
EP (1) | EP2932693B1 (zh) |
CN (1) | CN105122772B (zh) |
WO (1) | WO2014099906A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9369525B2 (en) * | 2013-06-26 | 2016-06-14 | International Business Machines Corporation | Highly resilient protocol servicing in network-attached storage |
US9304861B2 (en) | 2013-06-27 | 2016-04-05 | International Business Machines Corporation | Unobtrusive failover in clustered network-attached storage |
US10116752B2 (en) * | 2013-09-17 | 2018-10-30 | Karos Health Incorporated | System and method for bridging divergent information networks |
US9729653B2 (en) * | 2014-01-23 | 2017-08-08 | Software Ag | Systems and/or methods for automatically tuning a delivery system for transmission of large, volatile data |
US10296973B2 (en) * | 2014-07-23 | 2019-05-21 | Fortinet, Inc. | Financial information exchange (FIX) protocol based load balancing |
WO2016049186A1 (en) * | 2014-09-25 | 2016-03-31 | Osix Corporation | Computer-implemented methods, computer readable media, and systems for co-editing content |
US9600251B1 (en) * | 2014-10-13 | 2017-03-21 | Google Inc. | Enhancing API service schemes |
CN106203757A (zh) * | 2015-05-06 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 计算资源管理方法和装置 |
US10033645B2 (en) * | 2015-09-29 | 2018-07-24 | Dell Products L.P. | Programmable data plane hardware load balancing system |
US10404827B2 (en) * | 2016-06-22 | 2019-09-03 | Cisco Technology, Inc. | Client network information service |
US10313441B2 (en) | 2017-02-13 | 2019-06-04 | Bank Of America Corporation | Data processing system with machine learning engine to provide enterprise monitoring functions |
EP3382542A1 (en) | 2017-03-30 | 2018-10-03 | British Telecommunications public limited company | Allocating processing requests between servers |
US10581745B2 (en) | 2017-12-11 | 2020-03-03 | International Business Machines Corporation | Dynamic throttling thresholds |
US11146624B2 (en) * | 2019-10-03 | 2021-10-12 | Microsoft Technology Licensing, Llc | Real time multi-tenant workload tracking and auto throttling |
US11609960B2 (en) * | 2020-06-08 | 2023-03-21 | Walmart Apollo, Llc | Methods and apparatus for automatically servicing item data requests |
EP4141594A1 (de) | 2021-08-23 | 2023-03-01 | Siemens Aktiengesellschaft | Feingranularer abgleich lokaler archive bei master/master szenarien von servern einer technischen anlage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609814A (zh) * | 2004-09-14 | 2005-04-27 | 中国人民解放军上海警备区司令部指挥自动化工作站 | 用于数据容灾备份控制系统的监控操作系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236745A1 (en) * | 2000-03-03 | 2003-12-25 | Hartsell Neal D | Systems and methods for billing in information management environments |
AU2001259075A1 (en) | 2000-04-17 | 2001-10-30 | Circadence Corporation | System and method for web serving |
US20020032727A1 (en) | 2000-09-08 | 2002-03-14 | International Business Machines Corporation | System and method for enhancing load controlling in a clustered Web site |
US7454195B2 (en) * | 2001-11-16 | 2008-11-18 | At&T Mobility Ii, Llc | System for the centralized storage of wireless customer information |
US20040024861A1 (en) * | 2002-06-28 | 2004-02-05 | Coughlin Chesley B. | Network load balancing |
US20040210663A1 (en) | 2003-04-15 | 2004-10-21 | Paul Phillips | Object-aware transport-layer network processing engine |
US7636917B2 (en) | 2003-06-30 | 2009-12-22 | Microsoft Corporation | Network load balancing with host status information |
KR100570836B1 (ko) * | 2003-10-14 | 2006-04-13 | 한국전자통신연구원 | 부하 분산 세션 레이블을 이용한 서버간의 부하 분산장치 및 방법 |
US7584301B1 (en) | 2004-05-06 | 2009-09-01 | Foundry Networks, Inc. | Host-level policies for global server load balancing |
US8700729B2 (en) * | 2005-01-21 | 2014-04-15 | Robin Dua | Method and apparatus for managing credentials through a wireless network |
US7990847B1 (en) | 2005-04-15 | 2011-08-02 | Cisco Technology, Inc. | Method and system for managing servers in a server cluster |
US8566928B2 (en) * | 2005-10-27 | 2013-10-22 | Georgia Tech Research Corporation | Method and system for detecting and responding to attacking networks |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US8595847B2 (en) * | 2008-05-16 | 2013-11-26 | Yellowpages.Com Llc | Systems and methods to control web scraping |
US8346225B2 (en) * | 2009-01-28 | 2013-01-01 | Headwater Partners I, Llc | Quality of service for device assisted services |
US8260930B2 (en) | 2009-12-07 | 2012-09-04 | At&T Intellectual Property I, L.P. | Systems, methods and computer readable media for reporting availability status of resources associated with a network |
US9363312B2 (en) * | 2010-07-28 | 2016-06-07 | International Business Machines Corporation | Transparent header modification for reducing serving load based on current and projected usage |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9674258B2 (en) * | 2012-02-23 | 2017-06-06 | Yottaa Inc. | System and method for context specific website optimization |
US9705754B2 (en) * | 2012-12-13 | 2017-07-11 | Level 3 Communications, Llc | Devices and methods supporting content delivery with rendezvous services |
-
2012
- 2012-12-17 US US13/716,913 patent/US9185006B2/en active Active
-
2013
- 2013-12-17 WO PCT/US2013/075655 patent/WO2014099906A1/en active Application Filing
- 2013-12-17 CN CN201380066239.2A patent/CN105122772B/zh active Active
- 2013-12-17 EP EP13821255.0A patent/EP2932693B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609814A (zh) * | 2004-09-14 | 2005-04-27 | 中国人民解放军上海警备区司令部指挥自动化工作站 | 用于数据容灾备份控制系统的监控操作系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2932693A1 (en) | 2015-10-21 |
US9185006B2 (en) | 2015-11-10 |
EP2932693B1 (en) | 2020-10-14 |
WO2014099906A1 (en) | 2014-06-26 |
CN105122772A (zh) | 2015-12-02 |
US20140173092A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105122772B (zh) | 一种通过头部交换服务器状态和客户端信息的方法及设备 | |
CN104871133B (zh) | 基于服务器健康以及客户端信息的应用智能请求管理 | |
US10380504B2 (en) | Machine learning with distributed training | |
US20140089500A1 (en) | Load distribution in data networks | |
EP3596600B1 (en) | Systems and methods for compute node management protocols | |
US20180139269A1 (en) | Dynamic load balancing among data centers | |
US11645591B2 (en) | Dynamic agent management for multiple queues | |
CN109906586A (zh) | 跨安全网络边界的配置验证的系统和方法 | |
CN107431630A (zh) | 高度可扩展、容错的远程访问架构和与之连接的方法 | |
CN112532669B (zh) | 一种网络边缘计算方法、装置及介质 | |
US11620571B2 (en) | Machine learning with distributed training | |
CN110537348A (zh) | 用于通信会话的端点配置 | |
US20220261275A1 (en) | Self-evolving microservices | |
US20190180189A1 (en) | Client synchronization for offline execution of neural networks | |
US20220036270A1 (en) | Graph-based handling of service requests | |
US11394637B1 (en) | Methods, apparatuses and computer program products for generating transmission path objects based on data object transmissions in a network service cloud | |
Hamdaoui et al. | Unleashing the power of participatory IoT with blockchains for increased safety and situation awareness of smart cities | |
US11625655B2 (en) | Workflows with rule-based assignments | |
CN113114503B (zh) | 基于应用交付网络需求的部署方法及装置 | |
US20220374443A1 (en) | Generation of data pipelines based on combined technologies and licenses | |
CN106874371A (zh) | 一种数据处理方法及装置 | |
CN117041355A (zh) | 任务的分发方法、计算机可读存储介质和任务分发系统 | |
CN107969166A (zh) | 用于请求访问有限的服务实例的方法和系统 | |
US20180183861A1 (en) | Internet-of-things transaction resoruce with finite state automata | |
Meskill et al. | Federation lifecycle management incorporating coordination of bio-inspired self-management processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240719 Address after: texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P. Country or region after: U.S.A. Address before: Washington State Patentee before: MICROSOFT TECHNOLOGY LICENSING, LLC Country or region before: U.S.A. |
|
TR01 | Transfer of patent right |