CN106464731B - 利用分层边缘服务器的负载平衡 - Google Patents

利用分层边缘服务器的负载平衡 Download PDF

Info

Publication number
CN106464731B
CN106464731B CN201580029680.2A CN201580029680A CN106464731B CN 106464731 B CN106464731 B CN 106464731B CN 201580029680 A CN201580029680 A CN 201580029680A CN 106464731 B CN106464731 B CN 106464731B
Authority
CN
China
Prior art keywords
dns
layer
request
load
anycast
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
Application number
CN201580029680.2A
Other languages
English (en)
Other versions
CN106464731A (zh
Inventor
A·弗拉维尔
P·玛尼
N·霍尔特
D·马尔茨
J·刘
O·萨玛切夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106464731A publication Critical patent/CN106464731A/zh
Application granted granted Critical
Publication of CN106464731B publication Critical patent/CN106464731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种包括边缘服务器(132)、域名服务器,DNS(131)和负载控制器的边缘服务器节点(130)。DNS被分配给边缘服务器节点层,其中每一边缘服务器节点层都具有该层的DNS的DNS任播IP地址和该层的完全限定域名FQDN。DNS处理或卸载请求以解析所分配的层的FQDN以便平衡边缘服务器上的负载。通过返回另一层的FQDN来卸载请求。负载控制器监视边缘服务器上的负载,并指示DNS卸载请求以便减少边缘服务器上的负载。

Description

利用分层边缘服务器的负载平衡
背景
内容数据网络(“CDN”)通常提供响应于使用超文本传输协议(“HTTP”)经由因特网发送的请求而供应服务内容的服务器群集。为了向CDN发送服务请求,客户端首先向域名服务器(“DNS”)系统发送具有CDN的完全限定域名(“FQDN”)的解析请求,以便将该FQDN解析为CDN的相应的网际协议(“IP”)地址。DNS系统包含FQDN到IP地址的映射。例如,DNS系统可将为“acme.com”的FQDN映射到为“192.168.1.1.”的IP地址。在接收到CDN的IP地址之后,客户端向该IP地址发送服务请求。在接收到服务请求之际,CDN处理该请求并向客户端发送响应。
DNS系统提供DNS分层结构以供解析FQDN。在该分层结构的顶部的是根DNS。根DNS具有顶级域名(例如,“.org”或“.com”)到顶级DNS的IP地址的映射。顶级DNS提供域名到因域而异的DNS的IP地址的映射。因域而异的DNS提供因域而异的名称到CDN服务器的IP地址的映射。为了解析FQDN,知道根DNS的IP地址的客户端将具有FQDN(例如,“acme.com”)的解析请求发送到根DNS的IP地址。根DNS为“.com”域返回顶级DNS的IP地址。客户端然后将具有FQDN的解析请求发送到所返回的顶级DNS的IP地址。顶级DNS为“acme.com”域返回因域而异的DNS的IP地址。客户端然后将具有FQDN的解析请求发送到因域而异的DNS的IP地址。因域而异的DNS返回CDN服务器的IP地址。客户端然后将服务请求发送到CDN服务器的IP地址。
请求从客户端到IP地址的路由可基于形成因特网的网络的分层结构的路由算法而采取各种各样的路径。网络的分层结构包括高级网络、因特网服务提供者(“ISP”)网络、以及针对每个ISP网络的域网络。高级网络在ISP网络之间路由消息。每个ISP网络在内部在经由该ISP网络连接的各域网络之间,并且在外部在ISP网络的域网络和经由另一ISP网络连接的域网络之间路由消息。每个域网络在内部在该域网络的各设备之间,并且在外部经由将该域网络连接到因特网的ISP网络在该域网络的设备和其他域网络的设备之间路由消息。
从始发域路由到目的域路由的消息可能需要行进通过许多路由器。例如,该消息在到达目的域网络中的服务器(例如,CDN服务器)之前可能需要从始发域网络中的客户端行进通过在始发域网络、始发域网络的ISP网络、顶层网络、目的域网络的ISP网络、以及目的域网络中的每一者内的若干路由器。
由于通过因特网的路由可能花费大量的时间,因此因特网中的网络经常将它们的路由器和服务器放置在各地理上分布的位置。路由算法尝试将消息路由到目的域网络中的服务器(该服务器在地理上接近源域网络中的客户端),以便减少该消息的行进时间。例如,CDN可以具有位于每个大陆的边缘服务器,以帮助确保从每个大陆上的客户端发送的消息被路由到该大陆上的边缘服务器。一旦消息在边缘服务器处被接收,该消息可以在CDN内(例如,经由光纤链路)被发送到CDN服务器以便处理该请求。尽管CDN边缘服务器可简单地用作在客户端与CDN服务器之间的消息的直通(pass-through),但是CDN边缘服务器可提供CDN的一些功能。例如,边缘服务器可高速缓存内容,使得其可对一些请求作出响应并避免将这些请求发送给CDN服务器。
为了帮助确保消息被路由到靠近客户端的边缘服务器,CDN的DNS可以尝试确定客户端的位置(例如,使用IP地理位置数据库)。一旦位置被确定,CDN的DNS可返回最近的边缘服务器的IP地址。尽管边缘服务器的布置可帮助减少行进时间,但是当路由到边缘服务器的消息流量高时,该边缘服务器可能处于瓶颈。例如,由于某些政治动荡,消息流量可能在一个大陆上很高。在这样的情况下,该大陆上的边缘服务器可能过载,而另一大陆上的边缘服务器可能具有大量未使用的容量。
各种方式已经被使用来帮助防止这样的过载。用于防止这样的过载的一种方式是每个边缘服务器将其负载报告给该域的负载平衡服务器。当负载平衡服务器检测到某个边缘服务器上的负载过载时,负载平衡服务器可指令域DNS开始向正常情况下将接收已过载的边缘服务器的IP地址的客户端返回没有过载的另一边缘服务器的IP地址。这样的方式的一个问题是从边缘服务器传送负载信息并将指令分发到域DNS的开销可能很高。
用于防止这样的过载的另一方式是域网络将IP任播技术用于其边缘服务器的IP地址。IP任播技术允许每个边缘服务器具有相同的IP地址(任播IP地址)。当消息被发送到该任播IP地址时,该消息可被路由到边缘服务器中的任一个,但通常被路由到最接近始发客户端的那个边缘服务器。如果某一边缘服务器变得过载,则消息从一个或多个ISP到该边缘服务器的路由可被阻止以便减少负载。由于边缘服务器使用IP任播技术,这些被阻止的消息将从那些ISP被路由到没被阻止的另一边缘服务器。阻止来自某一ISP的消息的一个问题是现有连接被丢弃并将需要与不同的边缘服务器重新建立。此外,在一些情况下,来自被阻止的ISP的消息可能被路由通过非阻止的ISP回到同一个已过载的边缘服务器,这可能导致该边缘服务器保持过载。
概述
提供了一种用于控制网络中具有DNS和相关联的边缘服务器的节点以对该相关联的边缘服务器的流量进行负载平衡的路由系统和方法。在一些实施例中,路由系统访问用于DNS的DNS任播IP地址以及FQDN。节点被分配到从最内层到最外层的节点层。DNS任播IP地址用于所分配的层的DNS,而FQDN用于所分配的层。当解析所分配的层的FQDN的请求被DNS接收时,DNS确定相关联的边缘服务器上的负载是否指示该DNS应当将来自相关联的边缘服务器的负载卸载。如果是,则DNS通过向边缘服务器返回用于相关联的边缘服务器的任播IP地址来处理该请求。如果否,则DNS通过返回内层的FQDN来卸载该请求。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
图1是示出在一些实施例中的针对域网络的路由系统的层的框图。
图2是示出在一些实施例中的通过边缘服务器来建立连接的通信的框图。
图3是示出在一些实施例中的节点的组件的框图。
图4是示出在一些实施例中的主设备的配置组件的处理的流程图。
图5是示出在一些实施例中的DNS的配置组件的处理的流程图。
图6是示出在一些实施例中的DNS的处理请求组件的处理的流程图。
图7是示出在一些实施例中的负载控制器的调整负载组件的处理的流程图。
详细描述
提供了一种用于在网络的各系统(例如,边缘服务器)之间进行负载平衡的系统和方法。在一些实施例中,路由系统定义该网络的系统和名称解析系统(例如,DNS)的组。每个系统与名称解析系统相关联。系统及其相关联的名称解析系统的组合可被认为是一自负载平衡节点并可在同一计算机上执行。每个组具有域名和用于名称解析系统的任播地址。这些组可被认为是层,并且最外(或最高)层可在地理上分散的位置处具有其节点,以便向附近的客户端提供快速响应时间。较内(或较低)层通常具有较少的节点,但仍可具有较多的总容量。当较外层中的名称解析系统接收到具有该层的域名的解析请求时,它通常返回相关联的系统的地址。由于任播技术将尝试找到与该客户端最近的名称解析系统,所以相关联的系统可能是与客户端最近的系统,使得客户端通常连接到该最近的系统。然而,如果该相关联的系统需要减少其负载(例如,由于过载),则名称解析系统返回下一内层的域名,而不是返回该相关联的系统的地址。客户端可然后对返回的域名重复该过程,以连接到下一较内层中的系统。如果该系统也过载了,则返回下一较内层的域名并重复该过程。因为较外层的系统是地理上分布的,所以客户端通常连接到最近的系统。然而,如果系统需要减少其负载,则相关联的名称解析系统可做出该确定并向客户端指示下一较内层的域名,而没有向负载平衡服务器发送消息和从负载平衡服务器接收消息的开销。
在一些实施例中,路由系统可指定系统与DNS之间的一一对应关系。例如,路由系统可定义三层。较外层可具有30个系统和30个DNS,下一层可具有10个系统和10个DNS,而最内层可具有5个系统和5个DNS。路由系统为每个层分配不同的DNS任播IP地址和不同的域名。例如,较外层可具有域名“acme.com”,中间层可具有域名“acme1.com”,而最内层可具有域名“acme0.com”。这些域名是向DNS系统注册的,并且层中的每个DNS都通告该层的DNS任播IP地址。当客户端发送具有其中一层的域名的解析请求时,DNS系统指示客户端将解析请求发送到该层的DNS任播IP地址。客户端然后将具有该层的域名的解析请求发送到该层的DNS任播IP地址。当该层中的一个DNS接收到解析请求时,其通常返回与该DNS相关联的系统的系统IP地址,并且客户端然后向该系统IP地址发送服务请求。但是,如果相关联的系统上的负载应该被减少,则该DNS改为指示客户端发送具有下一较内层的域名的解析请求。客户端然后重复该过程,但此次将被DNS系统指示将解析请求发送到下一较内层的DNS任播IP地址。当下一较内层的DNS接收到解析请求时,它返回其相关联的系统的系统IP地址(假设该系统上的负载不需要减少)。客户端可然后向所返回的系统IP地址发送服务请求,以便减少较外层的系统上的负载。
在下文中,尽管路由系统在边缘服务器的上下文中被描述,但是路由系统可与可能不被认为是边缘服务器的系统结合使用。此外,路由系统可以适于不与IP兼容但提供任播型技术的地址协议。任播型技术的任播地址(例如,IP任播地址)是导致向多个目的地中的任何一个递送消息的地址。消息将被递送到的目的地通常由路由基础结构的路由算法确定。此外,路由系统可由于除过载之外的原因而被用于减少边缘服务器上的负载。例如,如果边缘服务器停止用于修复的服务,则路由系统可指示其相关联的DNS开始卸载来自边缘服务器的负载,以便减少在边缘服务器最终停止服务时断开的连接的数量。
在一些实施例中,路由系统可为每个层指定系统任播IP地址,使得每个层可具有其自己的边缘服务器任播IP地址。每个边缘服务器通告其分配的层的边缘服务器任播IP地址。层的每个DNS指示客户端向该层的边缘服务器任播IP地址发送服务请求。虽然任播IP技术不保证服务请求将被发送到与该DNS相关联的边缘服务器,但实际上绝大多数服务请求被发送到了相关联的边缘服务器。
在一些实施例中,负载平衡节点可以是提供边缘服务器和其相关联的DNS两者的功能的计算机,或者可以是在同一局域网中的计算机。当边缘服务器和其相关联的DNS在地理上接近时,由于任播IP技术,客户端通过与DNS相关联的边缘服务器连接的机会很高。即使边缘服务器和其相关联的DNS在地理上不够接近以处于相同的局域网中,但是仍相对接近并且经由相同的ISP连接,则通过相关联的服务器连接的机会仍相对较高。此外,路由系统可能不具有边缘服务器与DNS之间的一一对应关系。例如,单个DNS可与地理上接近该DNS的多个边缘服务器相关联。如果每个边缘服务器都有其自己的IP地址,则路由系统可指示DNS开始卸载来自过载边缘服务器的一些负载。
在一些实施例中,负载平衡节点可被分配给多个层。每个节点可被分配给一个较内层和所有较外层。例如,分配给三层系统中层0的节点也可被分配给层1和2,而分配给层1的节点也可被分配给层2。当一节点被分配给多个层时,该节点通告每个被分配的层的DNS任播IP地址。当节点的DNS接收到指示其任意层的域名的解析请求时,如果DNS不在卸载,则DNS返回其相关联的边缘服务器的边缘IP地址。如果DNS正在卸载,则它向客户端指示低于其最低所分配的层的层的域名。例如,如果将节点分配给六层系统中的层3、4以及5,则DNS将把卸载定向到层2的域名。以此方式,较内层的容量可被用于在正常操作下处理服务请求,而不仅仅是在边缘服务器过载时才处理服务请求。
在一些实施例中,路由系统可包括负载控制器,该负载控制器监视边缘服务器的负载并且指示DNS何时开始减小该边缘服务器的负载。负载控制器确定负载是否满足卸载准则,而如果是,则该负载控制器指示DNS开始卸载。卸载准则可基于诸如中央处理单元(“CPU”)的利用率是否高于阈值百分比之类的各种因素。其他因素可以是到客户端的当前连接数、网络流量、存储器利用率、以及各种其他因素组合。负载控制器可使用分级方式来卸载和终止卸载。例如,负载控制器可以指示DNS将解析请求的卸载百分比重定向到另一层。该卸载百分比可基于过载量而几何地或指数地增加。例如,如果CPU利用率比阈值百分比高了5%,则负载控制器可指示DNS卸载其解析请求的5%。但是,如果CPU利用率比阈值百分比高了10%,则负载控制器可指示DNS卸载其解析请求的20%。相反,当CPU利用率高于阈值百分比但趋向于变低时,负载控制器可仅仅线性地减少卸载百分比,以便减少可由于过多地减少卸载而增加负载的任何机会。
图1是示出在一些实施例中的针对域网络的路由系统的层的框图。在此示例中,路由系统具有三个层:层0 100、层1 110、以及层2 120。层0是最内层,而层2是最外层。节点101、111、以及121分别被分配给层0、层1、以及层2。如示例节点130所示,每个节点包括DNS131和边缘服务器132。边缘服务器的大小表示边缘服务器的不同容量。层2具有最多的边缘服务器,但每个边缘服务器具有用于处理服务请求的最低容量。层0具有最少的边缘服务器,但每个边缘服务器具有用于处理服务请求的最高容量。每个层都具有其自己的域名和其自己的DNS任播IP地址。当客户端首先使用层2的域名来请求连接域网络时,客户端被指示到层2中的DNS,该DNS指示客户端通过其相关联的边缘服务器(其也在层2中)进行连接,除非DNS已被负载控制器指示开始卸载。如果层2的DNS正在卸载,则DNS向客户端提供层1的域名。客户端然后使用层1的域名来请求连接到域网络。客户端被指示到层1中的DNS,其指示客户端通过其相关联的边缘服务器(其也在层1中)来连接,除非该DNS已被负载控制器指示开始卸载。如果层1的DNS正在卸载,则DNS向客户端提供层0的域名。客户端然后使用层0的域名来请求连接到域网络。客户端被指示到层0中的DNS,其指示客户端通过其相关联的边缘服务器(其也在层0中)来连接。由于不存在较低层,所以当层0处的边缘服务器过载时,路由系统可使用其他技术来进行负载平衡。例如,每个边缘服务器除了其所分配的层的边缘服务器任播IP地址之外,还可具有其自己的唯一边缘IP地址。在这样的情况下,层0处的DNS可随机地返回边缘服务器中的唯一IP地址以便在整个边缘服务器上分布负载。
图2是示出在一些实施例中通过边缘服务器来建立连接的通信的框图。当客户端发送解析请求时,该解析请求可实际上通过在与客户端相同的局域网中的相同计算机或不同计算机上执行的本地DNS(“LDNS”)发送。LDNS解析由客户端提供的域名,并将边缘IP地址返回给客户端。通信图210示出了在客户端被指示到在最外层的未过载的边缘服务器时的通信,而通信图220示出了在客户端被指示到在最外层的过载的边缘服务器时的通信。参考通信图210,客户端最终被DNS系统指示将具有最外层的完全限定域名的解析请求发送211到该最外层的DNS任播IP地址。通常在地理上距客户端最近的较外层中的DNS确定不需要卸载,并发送212具有最外层中的相关联的边缘服务器的边缘IP地址的响应。在接收到边缘IP地址之后,客户端发送213连接到该边缘IP地址的请求,并且被连接到与该DNS相关联的边缘服务器。如果边缘IP地址是边缘服务器任播IP地址,则客户端可取决于负载被连接到最外层中的不同的边缘服务器或较内层中的边缘服务器。参考通信图220,客户端最终被DNS系统指示将具有最外层的完全限定域名的解析请求发送221到最外层的DNS任播IP地址。由于DNS已经确定了卸载是需要的,所以DNS发送222具有下一较低层的完全限定域名的响应。DNS可在其将完全限定域名映射到IP地址的区域文件中在规范名称记录(“CNAME”)中存储下一较内层的完全限定域名作为用于向提供最外层的完全限定域名的客户端指示下一较内层的完全限定域名的指令。最外层处的DNS在卸载时使用该规范名称记录。客户端然后向DNS系统发送具有下一较内层的完全限定域名的解析请求。DNS系统最终向客户端指示下一较内层的DNS任播IP地址。客户端然后发送223具有用于下一较内层的完全限定域名的解析请求,该请求被路由到下一较内层中的DNS。如果下一较内层中的DNS不在卸载,则其发送224具有相关联的边缘服务器的边缘IP地址的响应。在接收到响应之后,客户端发送连接到具有该边缘IP地址的边缘服务器的请求225。相关联的边缘服务器然后发送建立连接(例如,HTTP连接)的响应226。
图3是示出在一些实施例中的节点的组件的框图。节点300包括DNS 310、负载控制器320、以及边缘服务器330。所有这些节点可被连接到主设备340。DNS可包括句柄请求组件311、配置组件312、以及区域文件313。句柄请求组件接收解析请求并根据负载控制器的卸载指令来解析请求。配置组件配置DNS以通告节点的DNS任播IP地址,并建立区域文件以支持到下一较低层的域名的卸载。区域文件包含域名到IP地址的映射以及将域名映射到另一域名的规范记录。负载控制器包括调整负载组件321、确定负载组件322、以及负载存储333。调整负载组件被调用来指令DNS是否卸载并提供卸载百分比。确定当前负载组件确定边缘服务器的当前负载。确定当前负载组件可被周期性地(例如,基于定时器)调用,并调用传递当前负载的调整负载组件。负载存储是边缘服务器上如被确定当前负载组件确定为将由调整负载组件使用的负载的储存库。边缘服务器具有提供专用于边缘服务器的功能的各种组件331。主设备340包括配置组件341,其负责将配置信息发送到路由系统的节点。
其上可实现路由系统的计算设备和系统可包括中央处理单元、输入设备、输出设备(例如,显示设备和扬声器)、存储设备(例如,存储器和盘驱动器)、网络接口、图形处理单元、加速度计、蜂窝无线电链路接口、全球定位系统设备等等。输入设备可包括键盘、定点设备、触摸屏、手势识别设备(例如,针对空中手势)、头部和眼睛跟踪设备、用于声音识别的话筒等等。计算设备可包括台式计算机、膝上型计算机、平板、电子阅读器、个人数字助理、智能电话、游戏设备、服务器和诸如大规模并行系统之类的计算机系统。计算设备可访问包括计算机可读存储介质和数据传输介质的计算机可读介质。计算机可读存储介质是不包括储存库、传播信号的有形存储装置。计算机可读存储介质的示例包括诸如主存储器、高速缓存存储器、以及辅助存储器(例如,DVD)之类的存储器,并包括其他存储装置。计算机可读存储介质上可记录有或其可编码有实现路由系统的计算机可执行指令或的逻辑。数据传输介质被用于经由储存库、传播信号或载波(例如,电磁)经由有线或无线连接来传送数据。
该路由系统可以在诸如程序模块和组件之类的由一个或多个计算机、处理器、或其他设备执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块或组件包括执行特定任务或实现特定数据类型的例程、程序、对象、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。路由系统的各方面可例如使用应用专用集成电路(“ASIC”)以硬件来实现。
图4是示出在一些实施例中的主设备的配置组件的处理的流程图。配置组件400为每个层指定完全限定域名、DNS任播IP地址、以及边缘服务器任播IP地址,并将它们分布到每个层处的节点。在框401,该组件为每个层定义完全限定域名。在框402,该组件为每个层定义DNS任播IP地址。在框403,该组件为每个层定义边缘服务器任播IP地址。在框404-411,该组件循环,从而将配置信息分布到每个层中的节点。在框401,该组件选择从最外层开始的下一较内层。在判定框405,如果已经选择了所有的层,则该组件返回,否则该组件在框406处继续。在框406,该组件选择所选层的下一个节点。在判定框407,如果已经选择了所选层的所有节点,则该组件循环至框404以选择下一层,否则该组件在框408处继续。在框408,该组件将所选层的DNS任播IP地址发送到节点。在框409,该组件将所选层的完全限定域名发送到所选节点。在框410,该组件将所选层的边缘服务器任播IP地址发送到所选节点。在框411,该组件向该节点发送下一较内层的完全限定域名,并然后循环至框406以选择所选层的下一节点。
图5是示出在一些实施例中DNS的配置组件的处理的流程图。配置组件500被调用以便配置节点的域名和IP地址。在框501中,该组件通告该节点被分配到的层的DNS任播IP地址。在框502,该组件使用分配给节点的层的完全限定域名来更新区域文件。在框503,该组件通告分配给该节点的层的边缘服务器任播IP地址。边缘服务器任播IP地址的通告实际上可由相关联的边缘服务器执行。在框504,该组件使用下一层的完全限定域名来更新区域文件,并然后完成。
图6是示出在一些实施例中的DNS的处理请求组件的处理的流程图。向句柄请求组件600传递已经从客户端接收的完全限定域名。在判定框601,如果DNS正在卸载来自相关联的边缘服务器的负载,则该组件在框602继续,否则该组件就在框603继续。在判定框602,如果解析请求将被卸载,则该组件在框604继续,否则该组件就在框603继续。为了确定否在卸载时卸载请求,该组件可确保最后100条消息的卸载百分比已被卸载。在框603,该组件准备响应以便向客户端指示该节点所分配到的层的边缘服务器任播IP地址,并在框605处继续。在框604,该组件准备响应以便向客户端指示下一较内层的完全限定域名。在框605,该组件发送响应,并然后完成。
图7是示出在一些实施例中的负载控制器的调整负载组件的处理的流程图。向调整负载组件700传递当前负载并且指令DNS是否卸载以及卸载多少。在判定框701,如果当前负载高于阈值负载,则该组件在框702继续,否则该组件就在框706继续。在框702,如果DNS当前正在卸载请求,则该组件在框704继续,否则该组件就在框703继续。在框703,该组件指令DNS开始卸载,并然后完成。在判定框704,如果边缘服务器上的负载减少(例如,由于卸载),则该组件在框707处继续,否则该组件就在框705处继续。在框705,由于即使在卸载,负载仍没有增加,所以该组件指示DNS增加卸载,并然后完成。在判定框706,如果DNS当前正在卸载,则该组件在框707继续,否则该组件完成。在框707,该组件指令DNS减少卸载,并然后完成。
在一些实施例中,边缘服务器节点包括边缘服务器、DNS、以及负载控制器。DNS被分配给边缘服务器节点层,其中每一边缘服务器节点层都具有该层的DNS的DNS任播IP地址和该层的FQDN。DNS处理或卸载请求以解析所分配的层的FQDN以便平衡边缘服务器上的负载。通过返回另一层的FQDN来卸载请求。负载控制器监视边缘服务器上的负载,并指示DNS卸载请求以便减少边缘服务器上的负载。
在一些实施例中,路由系统通过将第一组系统和名称服务器(“NS”)中的每个系统与该第一组中的NS相关联,并将第二组系统和NS中的每个系统与该第二组中的NS相关联来对系统的负载进行负载平衡。NS将名称映射到地址或更一般地将一个标识符映射到另一个标识符。系统可以是诸如边缘服务器、文件服务器、CDN服务器、以及web托管服务器之类的计算设备。路由系统还向第一组中的NS分配第一NS任播地址,并向第一组中的系统分配第一名称,以及向第二组中的NS分配第二NS任播地址,并向第二组中的系统分配第二名称。当第一组中的第一接收NS接收到发送到第一NS任播地址以解析第一名称的请求时,路由系统确定与第一接收NS相关联的系统上的负载是否应由相关联的系统处理。如果是,则第一接收NS通过返回相关联的系统的地址来处理请求。如果不是,则第一接收NS通过返回第二名称来卸载请求,使得来自第二组的第二接收NS可以处理该请求并返回与第二接收NS相关联的第二组的系统的地址。
尽管用结构特征和/或动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。因此,本发明只受所附权利要求限制。

Claims (20)

1.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于控制节点网络中的节点,所述节点网络中的每一个节点具有域名服务器DNS和相关联的边缘服务器ES以便对所述相关联的ES的流量进行负载平衡,所述计算机可执行指令包括以下指令,所述指令在被执行时:
访问所述DNS的DNS任播网际协议IP地址和完全限定域名FQDN,所述节点被分配到从最内层到最外层的节点层,所述DNS任播IP地址用于所分配的层的DNS,所述FQDN用于所分配的层,其中被分配给层的每个DNS和相关联的ES的请求处理容量在每一较外层处减少;
通告所述DNS任播IP地址;以及
当解析所分配的层的FQDN的请求被所述DNS接收到时,
当所述相关联的ES上的负载指令所述DNS不应当卸载来自所述相关联的ES负载时,通过返回所述相关联的ES的ES任播IP地址来处理所述请求;以及
当所述相关联的ES上的负载指示所述DNS请求应当卸载来自所述相关联的ES的负载时,通过返回较内层的FQDN来卸载所述请求。
2.如权利要求1所述的计算机可读存储介质,其特征在于,所述DNS和所述相关联的ES在所述相同的计算机上执行。
3.如权利要求1所述的计算机可读存储介质,其特征在于,所述DNS和所述相关联的ES在地理上相邻并且经由相同的因特网服务提供者ISP连接,以增加发送所述请求的客户端将其后续请求发送到由所述相关联的ES处理的返回的ES任播IP地址的机会。
4.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括当被执行时通告所述相关联的ES的所述ES任播IP地址的指令。
5.如权利要求1所述的计算机可读存储介质,其特征在于,当在所述相关联的ES上的负载将被减少时,卸载一部分所接收的请求。
6.如权利要求1所述的计算机可读存储介质,其特征在于,分配给层的DNS和相关联的ES的数量和地理分布在每个较外层增加。
7.如权利要求1所述的计算机可读存储介质,其特征在于,每个节点被分配给一层以及该层的所有较外层。
8.如权利要求1所述的计算机可读存储介质,其特征在于,分配给多个层的节点将请求卸载到比其最内分配层更内的层。
9.如权利要求1所述的计算机可读存储介质,其特征在于,所述节点包括负载控制器,并且所述指令进一步包括当被执行时监视所述相关联的ES上的负载并向所述DNS指示何时卸载的指令。
10.如权利要求9所述的计算机可读存储介质,其特征在于,所述负载控制器用卸载百分比来指令所述DNS。
11.一种边缘服务器节点,包括:
边缘服务器ES;
分配给边缘服务器节点层的域名服务器DNS,每一边缘服务器节点具有该层的DNS的DNS任播网际协议IP地址和该层的完全限定域名FQDN,其中被分配给层的每个DNS和相关联的ES的请求处理容量在每一较外层处减少,所述DNS包括处理或卸载请求以解析所分配的层的FQDN以便平衡所述边缘服务器上的负载的组件,请求是通过返回另一层的FQDN来卸载的;以及
监视ES上的负载并指示DNS卸载请求以便减少所述ES上的负载的负载控制器。
12.如权利要求11所述的边缘服务器节点,其特征在于,所述DNS、ES以及负载控制器在所述相同的计算设备上执行。
13.一种用于对系统进行负载平衡的方法,包括:
将第一组系统和标识符服务器NS中的每个系统与所述第一组中的NS相关联,并将第二组系统和NS中的每个系统与所述第二组中的NS相关联,其中所述第一组中的NS的请求处理容量比所述第二组中的NS的请求处理容量少;
向所述第一组中的NS分配第一NS任播标识符,并向所述第一组中的系统分配第一标识符,以及向所述第二组中的NS分配第二NS任播标识符,并向所述第二组中的系统分配第二标识符;以及
当所述第一组中的第一接收NS接收到发送到所述第一NS任播标识符的解析所述第一标识符的请求时,
当与所述第一接收NS相关联的系统上的负载应当由所述相关联的系统处理时,通过返回所述相关联的系统的标识符来处理所述第一接收NS的所述请求;以及
当与所述第一接收NS相关联的系统上的负载不应由所述相关联的系统处理时,通过返回所述第二标识符来卸载所述请求,使得所述第二组的第二接收NS可以处理所述请求并返回所述第二组中与所述第二接收NS相关联的系统的标识符。
14.如权利要求13所述的方法,其特征在于,所述系统是内容分布网络的边缘服务器。
15.如权利要求13所述的方法,其特征在于,系统及其相关联的NS在地理上相邻并且经由所述相同的因特网服务提供者ISP连接以当所返回的标识符是任播标识符时,增加将所述请求发送给接收NS的客户端将其后续请求发送到由与所述接收NS相关联的系统处理的返回的标识符的机会。
16.如权利要求13所述的方法,其特征在于,包括向所述第一组中的系统分配第一系统任播标识符,并且向所述第二组中的系统分配第二系统任播标识符。
17.如权利要求13所述的方法,其特征在于,包括将所述第一NS任播IP标识符分配给所述第二组中的NS,使得所述NS可处理被发送到所述第一NS任播标识符的请求以及被发送到所述第二NS任播标识符的请求。
18.如权利要求13所述的方法,其特征在于,负载控制器监视执行系统的计算机上的负载,并且当所监视的负载满足卸载准则时,指示所述相关联的NS卸载请求。
19.如权利要求13所述的方法,其特征在于,包括
将第三组系统和NS中的每个系统与所述第三组中的NS相关联,其中所述第二组中的NS的请求处理容量比所述第三组中的NS的请求处理容量少;
向所述第三组中的NS分配第三NS任播标识符,并向所述第三组中的系统分配第三标识符;以及
当所述第二组中的第二接收NS接收发送到所述第二NS任播标识符的解析所述第二标识符的请求时,
当与所述第二接收NS相关联的系统上的负载没有将被卸载时,通过返回所述相关联的系统的标识符来处理所述第二接收NS的所述请求;以及
当与所述第二接收NS相关联的系统上的负载将被卸载时,通过返回所述第三标识符来卸载所述请求,使得所述第三组的第三接收NS可以处理所述请求并返回所述第三组中与所述第三接收NS相关联的系统的标识符。
20.一种用于控制节点网络中的节点,所述节点网络中的每一个节点具有域名服务器DNS和相关联的边缘服务器ES以便对所述相关联的ES的流量进行负载平衡的系统,所述系统包括:
用于访问所述DNS的DNS任播网际协议IP地址和完全限定域名FQDN的装置,所述节点被分配到从最内层到最外层的节点层,所述DNS任播IP地址用于所分配的层的DNS,所述FQDN用于所分配的层,其中被分配给层的每个DNS和相关联的ES的请求处理容量在每一较外层处减少;
用于通告所述DNS任播IP地址的装置;以及
当解析所分配的层的FQDN的请求被所述DNS接收到时,
用于当所述相关联的ES上的负载指令所述DNS不应当卸载来自所述相关联的ES负载时,通过返回所述相关联的ES的ES任播IP地址来处理所述请求的装置;以及
用于当所述相关联的ES上的负载指示所述DNS请求应当卸载来自所述相关联的ES的负载时,通过返回较内层的FQDN来卸载所述请求的装置。
CN201580029680.2A 2014-06-05 2015-06-04 利用分层边缘服务器的负载平衡 Active CN106464731B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/297,372 2014-06-05
US14/297,372 US9923959B2 (en) 2014-06-05 2014-06-05 Load balancing with layered edge servers
PCT/US2015/034087 WO2015187892A1 (en) 2014-06-05 2015-06-04 Load balancing with layered edge servers

Publications (2)

Publication Number Publication Date
CN106464731A CN106464731A (zh) 2017-02-22
CN106464731B true CN106464731B (zh) 2019-08-13

Family

ID=53433297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580029680.2A Active CN106464731B (zh) 2014-06-05 2015-06-04 利用分层边缘服务器的负载平衡

Country Status (5)

Country Link
US (3) US9923959B2 (zh)
EP (1) EP3152886B1 (zh)
CN (1) CN106464731B (zh)
BR (1) BR112016026978A8 (zh)
WO (1) WO2015187892A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350706B1 (en) * 2013-03-15 2016-05-24 Centurylink Intellectual Property Llc Network traffic data scrubbing with services offered via anycasted addresses
CN104853344B (zh) * 2014-02-17 2019-10-29 中兴通讯股份有限公司 一种选择分流网关的方法和控制器
KR101569857B1 (ko) * 2014-06-20 2015-11-27 서정환 클라이언트 경로 제어 시스템을 활용한 장애유발 클라이언트 검출 방법 및 시스템
WO2016069592A1 (en) * 2014-10-27 2016-05-06 Level 3 Communications, Llc Content delivery systems and methods
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10091110B2 (en) * 2015-10-28 2018-10-02 Electronics And Telecommunications Research Institute Edge-based load shedding system for fast data analysis and operating method thereof
US10812390B2 (en) * 2017-09-22 2020-10-20 Microsoft Technology Licensing, Llc Intelligent load shedding of traffic based on current load state of target capacity
US10567333B2 (en) * 2017-11-01 2020-02-18 Verizon Digital Media Services Inc. Deterministic traffic management in an anycast network
EP3729777A1 (en) 2017-12-18 2020-10-28 Telefonaktiebolaget LM Ericsson (publ) Virtual edge node as a service
CN107995312B (zh) * 2017-12-19 2021-02-09 上海海事大学 一种边界网络服务流量分流系统及动态分流方法
EP3777097B1 (en) 2018-03-28 2024-02-07 Telefonaktiebolaget LM Ericsson (publ) Bypass delivery policy based on the usage (i/o operaton) of caching memory storage in cdn
CN108881506A (zh) * 2018-06-04 2018-11-23 华为技术有限公司 一种基于多可用分区az的域名解析方法及装置
US10761738B2 (en) * 2018-07-13 2020-09-01 Seagate Technology Llc Raid performance by offloading tasks to expanders
US10846138B2 (en) * 2018-08-23 2020-11-24 Hewlett Packard Enterprise Development Lp Allocating resources of a memory fabric
CN112913197B (zh) 2018-10-30 2022-09-27 慧与发展有限责任合伙企业 用于云服务的软件定义广域网上行链路选择
US10645008B1 (en) 2018-12-06 2020-05-05 Verizon Digital Media Services Inc. Predictive Anycast traffic shaping
US10750374B1 (en) 2019-02-22 2020-08-18 Toyota Jidosha Kabushiki Kaisha Managing regionalized vehicular communication
US11240155B2 (en) * 2019-03-29 2022-02-01 Intel Corporation Technologies for network device load balancers for accelerated functions as a service
US10812576B1 (en) * 2019-05-31 2020-10-20 Microsoft Technology Licensing, Llc Hardware load balancer gateway on commodity switch hardware
CN110896412B (zh) * 2019-08-08 2021-07-30 腾讯科技(深圳)有限公司 网络请求处理方法及装置、电子设备
US11297131B2 (en) * 2019-12-10 2022-04-05 Oracle International Corporation Method and apparatus for multi-vendor GTM fabric
CN112217879B (zh) * 2020-09-24 2023-08-01 江苏方天电力技术有限公司 一种基于配电物联网的边缘计算技术和云边协同方法
CN112333017B (zh) * 2020-10-30 2023-08-08 腾讯科技(深圳)有限公司 一种服务配置方法、装置、设备及存储介质
CN115297179B (zh) * 2022-07-25 2024-03-08 天翼云科技有限公司 一种数据传输方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289519B1 (en) * 2002-05-01 2007-10-30 Cisco Technology, Inc. Methods and apparatus for processing content requests using domain name service
US8607014B2 (en) * 2009-12-22 2013-12-10 At&T Intellectual Property I, L.P. Multi-autonomous system anycast content delivery network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155723B2 (en) 2000-07-19 2006-12-26 Akamai Technologies, Inc. Load balancing service
US7574499B1 (en) 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US20090172192A1 (en) 2007-12-28 2009-07-02 Christian Michael F Mapless Global Traffic Load Balancing Via Anycast
US7797426B1 (en) 2008-06-27 2010-09-14 BitGravity, Inc. Managing TCP anycast requests
US8180896B2 (en) 2008-08-06 2012-05-15 Edgecast Networks, Inc. Global load balancing on a content delivery network
WO2010028696A1 (en) 2008-09-12 2010-03-18 Abb Technology Ag A method, an apparatus and a system for synchronization of data from disparate sources
US20100223364A1 (en) 2009-02-27 2010-09-02 Yottaa Inc System and method for network traffic management and load balancing
US8560598B2 (en) * 2009-12-22 2013-10-15 At&T Intellectual Property I, L.P. Integrated adaptive anycast for content distribution
JP5557689B2 (ja) 2010-10-22 2014-07-23 株式会社日立製作所 ネットワークシステム
US9467506B2 (en) * 2014-01-27 2016-10-11 Google Inc. Anycast based, wide area distributed mapping and load balancing system
US9560124B2 (en) * 2014-05-13 2017-01-31 Google Inc. Method and system for load balancing anycast data traffic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289519B1 (en) * 2002-05-01 2007-10-30 Cisco Technology, Inc. Methods and apparatus for processing content requests using domain name service
US8607014B2 (en) * 2009-12-22 2013-12-10 At&T Intellectual Property I, L.P. Multi-autonomous system anycast content delivery network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Where Do You "Tube"? Uncovering YouTube Server Selection Strategy;Vijay Kumar Adhikari等;《IEEE 2011 Proceedings of 20th International Conference on Computer Communications and Networks(ICCCN)》;20110830;第1-4页及第5页右列

Also Published As

Publication number Publication date
US20150358401A1 (en) 2015-12-10
US9923959B2 (en) 2018-03-20
US10911527B2 (en) 2021-02-02
BR112016026978A2 (pt) 2017-08-15
EP3152886B1 (en) 2019-08-21
US10440104B2 (en) 2019-10-08
US20180176295A1 (en) 2018-06-21
EP3152886A1 (en) 2017-04-12
WO2015187892A1 (en) 2015-12-10
BR112016026978A8 (pt) 2021-07-13
CN106464731A (zh) 2017-02-22
US20200036778A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
CN106464731B (zh) 利用分层边缘服务器的负载平衡
US20240129238A1 (en) Flow-Based Load Balancing
US10148756B2 (en) Latency virtualization in a transport network using a storage area network
US20210226916A1 (en) Systems and methods for utilization of anycast techniques in a dns architecture
US9549368B2 (en) Gateway reselection
WO2016074323A1 (zh) 内容分发网络的http调度系统和方法
CN106941507B (zh) 请求消息的调度方法及装置
CN107925681A (zh) 用于分布式软件定义网络分组核心系统中的负载平衡的系统和方法
US9979656B2 (en) Methods, systems, and computer readable media for implementing load balancer traffic policies
CN101926153A (zh) 用于对网络资源进行池处理的方法和设备
CN102164116A (zh) 均衡负载的方法、系统及相应设备
WO2021023018A1 (zh) 业务调度的方法及装置
JP2013090072A (ja) サービス提供システム
US11005929B1 (en) Dynamic data center load balancing using border gateway protocol
CN117099358A (zh) 内容分发网络的改进的任播路由技术
EP3316559B1 (en) Router advertisement caching
JP7315077B1 (ja) 制御装置、制御方法、及びプログラム
US11729142B1 (en) System and method for on-demand edge platform computing
US20210105222A1 (en) Method and apparatus for scheduling traffic of node, electronic device and storage medium
CN110958182B (zh) 一种通信方法及相关设备
CN116319392A (zh) 一种服务访问方法及设备
CN116055497A (zh) 一种实现负载均衡lb多活超大集群的方法
CN113595760A (zh) 一种系统故障的处理方法和装置
Bhinder DpsrcN AND EvaluaTroN op RBQuEST DrsrRreurroN

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