基于任播的广域分布式映射和负载平衡系统的制作方法

文档序号:10664031阅读:303来源:国知局
基于任播的广域分布式映射和负载平衡系统的制作方法
【专利摘要】本公开提供了用于为网络内的多个服务器提供基于任播的负载平衡的系统、方法和设备。所述网络包括域名系统(DNS)服务器,所述DNS服务器被配置为对从一个或者多个客户端接收到的域名查询作出响应。所述DNS服务器维持与域名相关联的任播IP地址的集合。所述DNS服务器利用从所述任播IP地址的集合中选择的一个或者多个任播IP地址对客户端的请求作出响应。所述DNS服务器还指令多个内容服务器将所述任播IP地址全部通告给所述网络。所述DNS服务器还从所述多个内容服务器中的每个内容服务器接收负载信息,并且基于所述负载信息指令所述多个内容服务器中的一个内容服务器停止通告先前所通告的任播IP地址中的一个或者多个任播IP地址。
【专利说明】
基于任播的广域分布式映射和负载平衡系统
[0001] 相关申请的交叉引用
[0002] 本申请要求于2014年1月27日提交的题为"AN ANYCAST BASED WIDE AREA DISTRIBUTED MAPPING AND LOAD BALANCING SYSTEM(基于任播的广域分布式映射和负载 平衡系统)"的美国专利申请No. 14/164,925的权益和优先权,其全部内容通过引用并入本 文。
技术领域
[0003] 本公开涉及通信网络领域,尤其涉及通信网络内的分布式映射和负载平衡。
【背景技术】
[0004] 在诸如在域名服务器(DNS)系统的一些系统中,可能难以确定发送请求的用户的 真实位置。当用户发送DNS请求时,首先将该请求发送至域名解析器。域名解析器进而发送 请求至域名服务器以获得与域名相关联的网络地址(或者内容服务器的网络地址)。将该网 络地址发送至用户以用于访问期望的内容。对于一些分布式系统,单个地址可以与多个地 理上分开的服务器相对应。

【发明内容】

[0005] 根据一个方面,本公开中描述的主题可以以一种用于在内容服务器集合上平衡来 自域名系统(DNS)服务器的负载的方法来实施。该方法包括:接收对内容服务器的网络地址 的请求;利用从多个任播网络地址中选择的网络地址对该请求作出响应;从多个内容服务 器中的至少一个内容服务器接收负载信息;以及,基于接收到的负载信息,指令一个或者多 个过载内容服务器停止通告多个任播网络地址中的一个或者多个任播网络地址。
[0006] 根据另一方面,本公开中描述的主题可以以一种用于对在服务器处从网络内的一 个或者多个客户端计算机接收到的通信作出响应的方法来实施。该方法包括:从域名系统 (DNS)服务器接收多个任播网络地址;将所述多个任播网络地址通告给网络;将负载信息发 送至所述DNS服务器;以及,基于从所述DNS服务器接收到的指令,停止通告所述多个任播网 络地址中的一个或者多个任播网络地址。
[0007] 根据另一方面,本公开中描述的主题可以以一种域名系统(DNS)来实施,该DNS系 统包括DNS服务器和能够与该DNS服务器进行通信的多个内容服务器。所述DNS服务器包括 任播模块和负载平衡模块。所述任播模块被配置为接收对内容服务器的网络地址的请求, 并且利用从多个任播网络地址中选择的网络地址对该请求作出响应。所述负载平衡模块通 信地耦合至所述任播模块并且被配置为:从多个内容服务器中的至少一个内容服务器接收 负载信息,以基于所述负载信息识别过载内容服务器,并且指令所述过载内容服务器停止 通告所述多个任播网络地址中的一个或者多个任播网络地址。所述多个内容服务器中的每 一个内容服务器包括通告模块和负载监视模块。所述通告模块被配置为:从所述DNS服务器 接收用于通告所述多个任播网络地址中的指定任播网络地址的指令,并且通告所述多个任 播网络地址中的所述指定任播网络地址。所述负载监视模块被配置为:收集与所述服务器 相关联的负载信息,并且将所述负载信息传送至所述DNS服务器。
[0008] 根据另一方面,本公开中描述的主题可以以一种其上编码有指令的非暂时性计算 机可读存储介质来实施,所述指令在由处理器执行时致使所述处理器执行方法。该方法包 括:接收对内容服务器的网络地址的请求;利用从多个任播网络地址中选择的网络地址对 该请求作出响应;从多个内容服务器中的至少一个内容服务器接收负载信息;以及,基于接 收到的负载信息,指令一个或者多个过载内容服务器停止通告所述多个任播网络地址中的 一个或者多个任播网络地址。
[0009] 在下面的附图和描述中将对本说明书中描述的主题的一个或多个实施方式的细 节进行陈述。其它特征、方面和优点将根据描述、附图和权利要求变得显而易见。注意,以下 附图的相对尺寸可能并未按比例绘制。
【附图说明】
[0010] 图1示出了示例域名系统。
[0011] 图2示出了用于图示基于任播的负载平衡的示例网络。
[0012] 图3示出了在图2所示的网络内的客户端与服务器之间的网络流量的示例路由。
[0013] 图4示出了在图2所示的网络内的客户端与服务器之间的网络流量的另一种示例 路由。
[0014] 图5示出了用于保存正在进行的查询的状态的方法。
[0015] 图6示出了由DNS服务器执行的基于任播的负载平衡的示例过程。
[0016] 图7示出了由服务器执行的基于任播的负载平衡的示例过程。
[0017] 图8示出了 DNS服务器的示例框图。
[0018]图9示出了服务器的示例框图。
[0019] 在各个附图中类似的附图标记和标志表示类似的元件。
【具体实施方式】
[0020] 图1示出了示例域名系统100。具体地,图1示出了分别通信地耦合至多个域名系统 (DNS)解析器(DNS解析器-1 104a、DNS解析器-2 104b、DNS解析器-3 104c、DNS解析器-4 104d、…、DNS解析器-N 104η)的多个客户端(客户端-1 102a、客户端-2 102b、客户端-3 102c、客户端-4 102d、···、客户端-N 102η)。每个DNS解析器104a-104n可以与DNS服务器106 进行通{目。
[0021] 该多个客户端102a-102n可以包括能够通过网络进行通信的任何计算装置,诸如, 但不限于,个人计算机、膝上型计算机、智能电话、平板计算机等。虽然该多个客户端l〇2a-102η中的每个客户端均图示为与其相关的DNS解析器104a-104n进行通信,但是应该理解的 是,该多个客户端l〇2a-102n中的多于一个的客户端可以与相同的DNS解析器进行通信。例 如,示出为与DNS解析器-2 104b进行通信的客户端-2 102b可以与DNS解析器-4 104d进行 通信。
[0022]该多个客户端102a-102n中的每个客户端均可以将域名解析请求发送至其相应的 DNS解析器104a_104n。例如,客户端-1 102a将域名地址"www. example. com"发送至DNS解析 器-1 104&。0吧解析器104&-10411可以是使用0奶查询从服务器查询关于域名的信息的应 用。例如,DNS解析器-1 104a可以向DNS服务器106查询与诸如"www. example. com"的域名地 址相关联的内容服务器的IP地址。DNS服务器106进而通过向DNS服务器104a返回与域名地 址"WWW. example. com"相关联的内容服务器的一个或者多个IP地址来作出响应。
[0023] 在一些实施方式中,DNS解析器104a-104n可以在地理上接近其相应的客户端 102a-102n。在一些实施方式中,DNS解析器104a-104n可以驻留在其相应的客户端102a-102η上。在一些其它实施方式中,DNS解析器104a-104n可以驻留在相应的客户端102a-102n 的互联网服务提供商的网关上。在一些实施方式中,DNS解析器104a-104n可以递归地查询 一个或者多个DNS服务器以获取客户端102a-102n所请求的域名地址的IP地址。在一些其它 实施方式中,客户端102a-102n可以直接向DNS服务器106发送查询,而不是经由其关联的 DNS解析器104a-104n来引导查询。
[0024] 如上所述,DNS服务器106对从DNS解析器104a-104n或者从客户端102a-102n接收 到的诸如域名地址查询的通信作出响应。DNS服务器106可以通过提供所请求的信息(即,所 请求的域名的IP地址)来作出响应,向可以帮助解析所请求的域名的另一服务器提供指针, 或者用指示DNS服务器106不具有与该查询相关联的任何信息的错误消息来作出响应。 [0025] 在一些实施方式中,DNS服务器106可以是针对DNS命名空间的连续部分的授权DNS 服务器。如果DNS服务器具有与DNS命名空间的连续部分相关的信息,则DNS服务器可以是针 对DNS命名空间的该部分而授权的。例如,在一些实施方式中,DNS服务器106可以是针对 "WWW. example. com"命名空间而授权的。在这些实施方式中,DNS服务器106可以包括在DNS 数据库中的资源记录。所述资源记录可以包括与"www.example .com"相关联的一个或者多 个web服务器的IP地址。
[0026] 在一些其它实施方式中,由DNS服务器106返回的IP地址可以是另一DNS服务器的 IP地址。在一些这种实施方式中,DNS服务器106可以不是针对所请求的域名的授权服务器, 并且可以返回转发器DNS服务器的IP地址,该转发器DNS服务器代表DNS服务器106对域名进 行解析。
[0027] 域名服务器可以基于域名解析器的位置来确定用户的位置,并且发送离域名解析 器最近的、可以处理附加负载的内容服务器的网络地址。但是,来自明显不同的地理位置的 用户可以使用相同的域名解析器离来解析域名。这意味着,其网络地址已经由域名服务器 发送的内容服务器可以不是离用户最近的内容服务器。因此,虽然域名服务器可以能够跨 分布式内容服务器集合平衡负载,但是域名服务器可能无法向用户提供最恰当的内容服务 器。
[0028] 任播提供将来自用户的请求引导至最接近用户的内容服务器的能力。利用任播, 诸如域名服务器的服务器,用任播地址对来自域名解析器的请求作出响应。此外,地理上分 布式内容服务器中的每个内容服务器通告相同的任播地址。因此,当用户将任播地址用作 访问内容之处的地址时,中间路由器自动地将用户的请求路由至最近的(或者成本最低的) 内容服务器。但是,不管服务器上的负载如何,都会将来自用户的请求路由至相同的最近的 内容服务器。换言之,任播不是负载感知的。因此,虽然任播提供了将用户请求引导至恰当 的内容服务器的能力,但是任播不具有跨分布式内容服务器集合平衡负载的能力。
[0029]在一些实施方式中,DNS服务器106可以维持与域名地址相关联的多个任播IP地 址。例如,DNS服务器106可以维持与域名地址"www. example . com"相关联的η个任播IP地址 的集合{IP1,IP2,IP3,IP4,…,IPN}。在一些实施方式中,η可以具有大约100至大约200的 值。在一些其它实施方式中,η可以具有大约10至大约100的值、大约200至大约300的值、或 者甚至大于300的值。对于每个接收到的针对域名地址的查询,DNS服务器106返回从多个任 播IP地址中选择的任播IP地址的子集。例如,在一些实施方式中,响应于对从DNS解析器-1 104a接收(并且起源于客户端1 102a)的"www. example . com"的查询,DNS服务器106可以返 回从η个任播IP地址的集合中选择的一个任播IP地址:任播IP地址IP1。在接收到来自DNS解 析器-2 104b的对"www. example · com"的下一个查询之后,DNS服务器106返回任播IP地址 IP2。同样,在接收到来自DNS解析器-3 104c、DNS解析器-4 104d、…、DNS解析器-η 104η的 对"www. example, com"的随后的查询之后,DNS服务器106分别返回任播IP地址ΙΡ3、ΙΡ4、…、 ΙΡη〇
[0030] 在一些实施方式中,针对每个接收到的查询,DNS服务器106可以返回从与域名相 关联的η个任播IP地址中选择的多于一个的任播IP地址。例如,响应于从DNS解析器1 104a 接收到的对"肩w. example . com"的查询,DNS服务器106可以返回从任播IP地址IP1、IP2、 IP3、IP4、IP5、…、IPn中选择的任播IP地址IP1、IP2、IP3和IP4。然后,客户端可以从接收到 的任播IP地址的子集中选择一个任播IP地址,以从内容服务器请求内容。
[0031] 在一些实施方式中,针对每个接收到的查询,DNS服务器106可以以循环或者其它 结构化的方式从η个任播IP地址的集合中选择任播IP地址的子集,并且用所选择的任播IP 地址对该查询作出响应。在一些其它实施方式中,DNS服务器106可以从η个任播IP地址的集 合中随机地或者伪随机地选择任播IP地址。
[0032]图2示出了用于图示基于任播的负载平衡的示例网络200。具体地,图2示出了经由 路由器-1 206a、路由器-2 206b、路由器-3 206c、路由器-4 206d和路由器-5 206e这五个 IP路由器进行通信的客户端-1 202a、客户端-2 202b、客户端-3 202c和客户端-4 202d四 个客户端和服务器-1 204a、服务器-2 204b和服务器-3 204c三个服务器。网络200还包括 可以与这四个客户端和三个服务器进行通信的DNS服务器208。应该理解的是,其它网络可 以包括不同数目和配置的客户端、服务器和路由器,并且下面关于示例网络200论述的基于 任播的负载平衡可以在这样的其它网络中容易地实施。
[0033] DNS服务器208可以与上面关于图1论述的DNS服务器106相似。照此,DNS服务器208 可以向请求解析域名地址的客户端提供从任播IP地址的集合中选择的任播IP地址。例如, DNS服务器208可以提供与域名"www. example. com"相关联的任播IP地址。在一些实施方式 中,由DNS服务器208提供的任播IP地址可以是web内容服务器的IP地址。在一些其它实施方 式中,IP地址可以是分配为代表DNS服务器208解析域名"WWW. example. com"的其它DNS服务 器的IP地址。
[0034] DNS服务器208还与服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务 器中的每一个服务器进行通信(为清楚起见,未示出显式连接hDNS服务器208向服务器1 204a、服务器2 204b和服务器3 204c提供与域名相关联的任播IP地址的集合。例如,DNS服 务器208可以向服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务器中的每个服 务器提供与域名"WWW. example . com"相关联的任播IP地址的集合{IP1,IP2,IP3,IP4,…, IPN}。然后,这三个服务器中的每个服务器可以通告任播IP地址的完整集合。在一些实施方 式中,DNS服务器208也可以向服务器204a-204c提供与其它域名相关联的多个任播IP地址。
[0035] DNS服务器208还可以从每个服务器接收负载指标。该负载指标可以包括,例如,月艮 务器响应时间、点击次数、资源利用率、时延、服务器状态等。如下面详细论述的,基于从每 个服务器接收到的负载指标,DNS服务器208可以指令服务器停止通告一个或者多个任播IP 地址。
[0036] 客户端-1 202a、客户端-2 202b、客户端-3 202c和客户端-4 202d这四个客户端 可以与上面关于图1论述的客户端-1 102a、客户端-2 102b、客户端-3 102c、客户端-4 102d、···、客户端-N 102η的N个客户端相似。此外,假定这四个客户端中的每个客户端均已 经从DNS服务器208接收到一个或者多个任播IP地址。例如,假定客户端-1 202a、客户端-2 202b、客户端-3 202c和客户端-4 202d已经分别从DNS服务器208接收到任播IP地址IP1、 IP2、IP3和IP4。
[0037] 如上所述,服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务器中的每 个服务器均可以通告任播IP地址的集合。通过通告任播IP地址的集合,每个服务器204a-204c指示其可以接受与所通告的IP地址中的任一 IP地址相关联的客户端请求。每个服务器 204a-204c还向DNS服务器发送负载指标。如上所述,该负载指标可以包括,例如,服务器响 应时间、点击次数、资源利用率、时延、服务器状态等。每个服务器204a-204c还从DNS服务器 208接收指令以开始或者停止通告来自任播IP地址的集合的一个或者多个任播IP地址。 [0038] 路由器206a-206e可以路由在客户端202a-202d、服务器204a-204d与DNS服务器 208之间的网络流量。在一些实施方式中,路由器206a-206e可以是IP路由器。照此,路由器 206a-206e将在其端口中的一个端口处接收到的IP分组路由至其端口中的另一个端口,该 路由部分地基于封闭在接收到的IP分组的报头中的目的IP地址。路由器206a-206e可以从 服务器204a-204c中的每个服务器接收通告。基于这些通告,路由器206a-206e可以更新其 相应的路由与转发表。在一些实施方式中,路由器206a-206e可以使用边界网关协议(BGP) 来构建路由表并且交换路由信息。在一些其它实施方式中,路由器206a-206e可以使用开放 式最短路径优先(0SPF)协议来构建路由表并且交换路由信息。
[0039] 图3示出了在图2所示的网络200内的客户端202a-202d与服务器204a-204c之间的 网络流量的示例路由。在图3所示的示例中,假定客户端-1 202a、客户端-2 202b、客户端-3 202c、和客户端-4 202d都已经针对其对于与域名"www. example. com"相关联的IP地址的相 应请求而分别从DNS服务器208接收到IP地址IP1、IP2、IP3和IP4。此外,假定每个服务器 204a-204c将与域名"www. example. com"相关联的任播IP地址的完整集合{IP1,IP2,IP3, IP4,…,IPN}通告至路由器206a-206e。
[0040]由于所有的服务器204a-204c都通告任播IP地址的完整集合,所以服务器204a-204c中的每个服务器均可以潜在地对针对所通告的任播IP地址中的任何任播IP地址的客 户端请求作出响应。换言之,客户端请求可以由服务器204a-204c中的任意一个服务器潜在 地处理。服务器204a-204c中的哪一个服务器接收客户端请求可以取决于由路由器206a-206e实施的路由算法。例如,可以经由路由器-1 206a将源于客户端-1 202a的对地址IP1的 请求路由至服务器-1 204a;可以经由路由器-2 206b和路由器-5 206e将源于客户端-2 202b的对地址IP2的请求路由至服务器-2 204b;可以经由路由器-3 206c将源于客户端-3 202c的对地址IP3的请求路由至服务器-3 204c;并且也可以经由路由器-4 206d和路由器- 3 206c将源于客户端-4 202d的对地址IP4的请求路由至服务器-3 204c。
[0041] 在一些实施方式中,如图3所示,可以采用与至服务器204a_204c的相应请求所采 用的路线相同的路线,将服务器204a-204c的对客户端请求的响应返回至客户端。例如,可 以经由路由器-1 206a来路由服务器-1 204a对客户端-1 202a的响应。同样,可以经由路由 器-5 206e和路由器-2 206b来路由服务器-2 206b对客户端-2 202b的响应。应该理解的 是,图3所示的在客户端202a-202d与服务器204a-204c之间的路线仅是示例,而且这些路线 可以基于网络200内诸如,带宽、时延等的各种因素动态地变化。
[0042] 图4示出了在图2所示的网络200内的客户端202a-202d与服务器204a-204c之间的 网络流量的另一个示例路由。具体地,图4示出了当服务器3 204c处于过载状况下时的流量 的路由。如上所述,服务器204a-204c将其相应的负载信息传递至DNS服务器208。基于接收 到的负载信息,DNS服务器208可以确定服务器204a-204c中的一个或者多个服务器可能处 于过载状况。在这种情况下,DNS服务器208可以通过指令服务器停止通告先前所通告的任 播IP地址的集合中的一个或者多个任播IP地址来试图缓解受影响的服务器上的负载。 [0043] 例如,参照图4,DNS服务器208可以确定服务器-3 204c处于过载状况下,并且指令 服务器-3 204c停止通告任播IP地址IP4。在一些其它实施方式中,任播IP地址IP4可以是在 服务器-3 204上引起最高负载的地址。在一些其它实施方式中,DNS服务器208可以指令服 务器3 24c停止通告从IP任播地址的集合中随机选择的地址。
[0044]由于服务器3 204c停止通告IP4,所以路由器206a_206e可以重新配置其相应的路 由或者转发表,使得不再将具有目的地址IP4的IP分组路由至服务器-3 204c。而是可以将 具有目的地址IP4的IP分组路由至仍在通告任播地址IP4的不同服务器。例如,参照图4,将 来自客户端-4 202d的对先前路由至服务器-3 204c的任播IP地址IP4的请求转而路由至仍 在通告任播IP地址IP4的服务器-2 204b。
[0045] 即使新的客户端将要发送对地址IP4的请求,也不会将这类请求路由至服务器-3 204c。例如,图4还示出了正在发送对任播IP地址IP4的请求的第五客户端:客户端-5 202e。 即使客户端-5 202e耦合至服务器-3 204c所耦合的相同路由器(路由器3 206c),也不会将 源于客户端-5 202e的对IP4的请求路由至服务器-3 204c。反而,在该示例中,将该请求路 由至服务器-1 204a。
[0046] 注意,虽然服务器-3 204c停止通告任播IP地址IP4,但是它仍然可以继续通告其 它任播IP地址,例如,地址IP3。因此,就此而言,仍然可以通过服务器-3 204c接收和处理源 于客户端-3 202c或者任何其它客户端的对地址IP3的请求。
[0047]由于不再通过服务器-3 204c接收先前由服务器-3 204c处理的对任播IP地址IP4 的请求,所以可以减少服务器-3 204c上的负载。通过这种方式,DNS服务器208可以通过指 令服务器-3 204c停止通告从任播IP地址的集合中选择的一个或者多个任播IP地址来调控 服务器-3 204c上的负载。例如,假定服务器-3 204c通告20个任播IP地址。还假定服务器-3 104c处于过载状况,并且该服务器上的总负载均匀分布在与这20个任播IP地址中的每个任 播IP地址相关联的正在处理的请求上。如果该服务器将要停止通告20个任播IP地址中的2 个任播IP地址,而其余服务器204继续通告全部20个任播IP地址,则与这2个任播IP地址相 关联的将要以其他方式引导至服务器-3 204c的通信将会转而被引导至继续通告所述地址 的其它服务器204。这意味着,服务器-3 204c将会少处理大约10%的通信。因此,该服务器 上的总负载可以潜在地减少大约10%。因此,通过指令服务器停止通告一个或者多个任播 IP地址,将该服务器上的负载分布至其它服务器。同样,DNS服务器208可以监视网络200内 其它服务器204a-204b上的负载状况,并且可以基于其相应的负载状况指令这些服务器中 的一个或者多个服务器停止通告一个或者多个任播IP地址。
[0048] DNS服务器208可以继续监视服务器-3 204c上的负载状况,以确定当前的负载状 况是否可以允许服务器-3 204c重新通告任播IP地址IP4。例如,如果诸如但不限于带宽和 时延的负载参数跨过预定阈值,则DNS服务器208可以指令服务器-3 204c重新通告IP4。在 接收到来自服务器-3 204c的通告之后,路由器206a-206e可以重新配置其路由与转发表, 使得可以将对地址IP4的请求再次路由至服务器-3 204c。
[0049]在一些实施方式中,服务器204a_204c可以基于先前与客户端的通信对依赖于由 相应服务器所存储的状态的与相同客户端的通信作出响应。例如,如果服务器-3 204c接收 任播地址IP4上的TCP/IP通信,则服务器-3 204c将会在对该通信作出响应的同时维持TCP 状态。如图4所示,当服务器-3 204c因过载状况而停止通告地址IP4时,将从客户端-4 202d 寻址至IP4的分组路由至向前一个服务器-2 204b。但是,服务器-2 204b不包括关于客户 端-4 202d的通信的任何状态信息。因此,当将分组路由至服务器-2 204b时,由客户端-4 202d建立的与服务器-3 204c的任何状态依赖事务都会丢失。
[0050] 图5示出了用于保存正在进行的通信或者事务的状态的方法。具体地,图5示出了 图4所示的网络200的一部分,其中,服务器-3 204c已经停止通告任播IP地址IP4,并且将从 客户端-4 202d寻址至IP4的请求路由至服务器2 204b。服务器-2 404b维持正在由服务器 204a-204c处理的所有请求的状态表。当由服务器-2 204b接收到来自客户端-4 202d的重 新路由的请求时,服务器-2 204b查找状态表以确定接收到的请求是否是新的、是否与在服 务器-2 204b处目前正在进行的事务相对应、或者是否与最近已经停止通告地址的不同服 务器相关联。
[0051] 状态表可以是由这三个服务器204a_204c中的每个服务器来维持。在一些实施方 式中,为了维持状态表,这三个服务器204a-204c中的每个服务器可以将与其相应客户端正 在进行的事务的状态与标识信息传递至所有其它服务器。在接收到这些信息之后,这三个 服务器204a-204c中的每个服务器可以更新其相应的状态表。在一些实施方式中,当服务器 停止通告一个或者多个任播IP地址时,该服务器可以将该一个或者多个任播IP地址传递至 其它服务器。在一些实施方式中,每个服务器可以将与客户端的正在进行的相应事务的信 息定期地发送至所有其它服务器。在一些其它实施方式中,响应于被指令停止通告一个或 者多个任播IP地址,服务器可以发送与使用这些任播IP地址的正在进行的事务相关联的状 态信息。
[0052]由于从客户端_4 202d接收到的请求与服务器-3 204c相关联,所以服务器-2 204b将来自客户端-4 202d的请求进行封装,并且将封装后的请求转发至服务器-3 204c。 在一些实施方式中,服务器-2 204b可以在与服务器-3 204c相关联的唯一IP地址处将封装 后的请求发送至服务器-3 204c。在一些实施方式中,该唯一IP地址可以是服务器-3 204c 用于发送和接收服务器维持或者管理信息的IP地址。服务器-3 204c检查封装后的请求,并 且查找自己的表以确定封装后的请求是客户端-4 202d与服务器-3 204c之间的正在进行 的事务的一部分。然后,服务器-3 204c可以处理该请求并且将响应返回至客户端-4 202d。
[0053]在一些实施方式中,服务器-3 204c可以将该响应进行封装并且将封装后的响应 返回至服务器-2 204b,而服务器-2 204b进而将该响应转发至客户端-4 202d。正在进行的 请求与响应的这种封装交换可以继续进行,直到作为请求与响应的一部分的事务由客户 端-4 202d或者服务器-3 204c终止。
[0054]因此,不管是否能够接收到寻址至任播地址IP4的任意分组,服务器-3 204c仍可 以处理与客户端4 202d的正在进行的事务。
[0055]图6示出了由DNS服务器执行的基于任播的负载平衡的示例过程600。在一些实施 方式中,图6所示的过程600可以例如由图1所示的DNS服务器108来执行。在一些其它实施方 式中,过程600可以例如由图2-5所示的DNS服务器208来执行。过程600包括接收对服务器的 网络地址的请求(步骤602);利用从多个任播地址中选择的一个或者多个任播网络地址对 该请求作出响应(步骤604);从至少一个服务器接收负载信息(步骤606);以及,基于接收到 的负载信息,指令服务器中的一个或者多个服务器停止通告该多个任播地址中的一个或者 多个任播地址(步骤608)。
[0056]过程600包括接收对服务器的网络地址的请求(步骤602)。上面已经关于图1对该 过程步骤的一个示例进行了论述。具体地,DNS服务器108经由DNS解析器-1 104a从客户端-1 102a接收对与域名地址"www. example. com"相关联的网络地址的请求。过程600还包括利 用从多个任播地址中选择的一个或者多个任播网络地址对该请求作出响应(步骤604)。上 面已经关于图1对该步骤的一个示例进行了论述。具体地,图1示出了 DNS服务器106利用任 播地址IP1对从客户端-1 102a接收到的请求作出响应。任播地址IP1可以从N个任播IP地址 的集合{IP1,IP2,IP3,IP4,…,IPN}中选出。在一些实施方式中,DNS服务器106可以利用从N 个任播IP地址的集合中选择的多于一个的任播地址来作出响应。
[0057] 过程600还包括从至少一个服务器接收负载信息(步骤606)。上面已经关于图3-5 对该步骤的一个示例进行了论述。例如,图3-5中的DNS服务器208从三个服务器204a-204b 中的每个服务器接收负载信息。如上所述,负载信息可以包括若干个指标,诸如但不限于, 服务器响应时间、点击次数、资源利用率、时延、服务器状态等。DNS服务器208可以将从服务 器接收到的负载信息进行比较,并且将这些负载信息与预定阈值值进行比较。如果接收到 的负载信息跨过了阈值,则DNS服务器208可以确定服务器处于过载状况下。
[0058]过程600还包括基于接收到的负载信息,指令服务器中的一个或者多个服务器停 止通告该多个任播地址中的一个或者多个任播地址(步骤608)。上面已经关于图4对该过程 步骤的一个示例进行了论述。例如,在确定服务器-3 204c处于过载状况下之后,DNS服务器 208指令服务器-3 204c停止通告正在由服务器-3 204c通告的N个任播地址的集合{IP1, IP2,IP3,IP4,…,IPN}中的任播地址IP4。
[0059]图7示出了由服务器执行的基于任播的负载平衡的示例过程700。在一些实施方式 中,图7所示的过程700可以由图3-5所示的服务器204a-204c来执行。过程700包括通告多个 任播地址(步骤702)、将负载信息传递至服务器(步骤704)、停止通告由该服务器指示的一 个或者多个任播地址(步骤706)、以及,继续将负载信息传送至该服务器(步骤708)。
[0060] 过程700包括通告多个任播地址(步骤702)。上面已经关于图3对该过程步骤的一 个示例进行了论述。例如,图3示出了三个服务器204a-204c中的每个服务器通告N个任播IP 地址的集合{IP1,IP2,IP3,IP4,…,IPN}。通过通告N个任播IP地址的集合,服务器204a- 204c向路由器206a-206e指示这三个服务器204a-204c中的每个服务器可以接受寻址至N个 任播IP地址中的任何任播IP地址的客户端请求。
[0061] 过程700还包括将负载信息传递至服务器(步骤704)。上面已经关于图4-5对该过 程步骤的一个示例进行了论述。例如,图4所示的三个服务器204a-204c中的每个服务器将 负载信息发送至DNS服务器208。该负载信息可以包括负载指标,诸如,但不限于,服务器响 应时间、点击次数、资源利用率、时延、服务器状态等。
[0062] 过程700还包括停止通告由服务器指示的一个或者多个任播地址(步骤706)。上面 已经关于图4-5对该过程步骤的一个示例进行了论述。例如,如图4所示,在接收到来自DNS 服务器208的指令之后,服务器-3 204c停止通告任播地址IP4。通过停止通告任播地址IP4, 服务器-3 204c指示服务器-3 204c不再接受寻址至任播地址IP4的请求。这意味着,转而将 先前由服务器-3 204c处理的寻址至IP4的请求(实际上为分组)路由至不同服务器。
[0063] 过程700还包括继续将负载信息传递至服务器(步骤708)。上面已经关于图4-5对 该过程步骤的一个示例进行了论述。例如,如上所述,甚至在停止通告任播地址IP4之后,月艮 务器-3 204c继续将负载信息发送至DNS服务器208。如果DNS服务器基于当前接收到的负载 信息确定服务器-3 204c不再是过载的,则服务器-3 204c可以接收来自DNS服务器208的指 令以开始重新通告任播地址IP4。通过这种方式,服务器-3 204c可以继续接受和响应寻址 至任播地址IP4的请求。
[0064]图8示出了 DNS服务器800的示例框图。在一些实施方式中,DNS服务器800可以用 作,例如,图1所示的DNS服务器106和/或图2-4所示的DNS服务器208。在一些实施方式中, DNS服务器800可以用于执行图6所示的示例过程600。
[0065] DNS服务器800包括处理器802、存储器804和网络接口 806。处理器802可以包括处 理指令的任何逻辑电路,诸如,但不限于,微处理器、微控制器、实施为专用集成电路 (ASIC)、现场可编程门阵列(FPGA)等的可编程逻辑阵列等。在一些实施方式中,处理器802 可以包括多个处理器。处理器802可以具有多处理、多任务、和多线程的能力,并且通常能够 同时执行多于一个的应用。处理器802可以经由数据与控制总线(未示出)与存储器804和网 络接口 806进行通信。
[0066]存储器804可以是能够存储计算机可读数据的任何装置。存储器804可以是具有固 定存储的装置或者用于读取可移动存储介质的装置。示例包括所有形式的非易失性存储 器、介质和存储器装置、半导体存储器装置(例如,EPR0M、EEPR0M、和闪速存储器装置)、磁 盘、磁光盘、和光盘(例如,CD ROM、DVD-ROM、和Blu-Ray?盘)。DNS服务器800可以具有任意 数目的实施存储器804的装置。在一些实施方式中,存储器804可以包括独立磁盘冗余阵列 (RAID)以提高容错性、可用性、和可靠性。
[0067] DNS服务器800可以利用网络接口 806通过网络与其它计算装置通信数据。例如,网 络接口可以用于与图1所示的客户端l〇2a-102n和/或DNS解析器104a-104n进行通信。DNS服 务器800还可以利用网络接口 804与图2-5所示的服务器201a-201c进行通信。网络接口 806 可以包括一个或者多个网络端口以便经由网络电缆物理连接至一个或者多个网络。网络接 口 806还包括用于在网络端口与处理器802之间通信数据并且总体控制网络接口 806的操作 的接口控制器。在一些实施方式中,网络接口804可以实施开放式系统互联(0SI)网络模型 的若干网络层。例如,网络接口可以包括具有所指派的以太网地址的以太网端口以用于实 施数据链路层。
[0068] 在一些实施方式中,存储器804可以存储DNS数据库808 JNS数据库808可以与上面 关于图1所示的DNS服务器106论述的DNS数据库相似。例如,DNS数据库808可以包括具有与 诸如"WWW.example.com"的域名相关联的一个或者多个web服务器的IP地址的资源记录。在 一些其它实施方式中,DNS数据库808可以包括能够代表DNS服务器800处理DNS请求的其它 DNS服务器的IP地址。在一些实施方式中,在DNS数据库中存储的IP地址可以是任播IP地址。 [0069] 存储器804可以存储由处理器802执行的若干应用。例如,存储器804可以包括用于 执行与域名系统相关的各种功能的DNS应用810。具体地,DNS应用可以包括任播模块812,该 任播模块812可以由处理器802执行以向客户端(诸如,图1所示的102a-102n)提供从在DNS 数据库808中存储的多个任播地址中选择的一个或者多个任播IP地址。DNS应用810还可以 包括负载平衡模块814。负载平衡模块814可以由处理器802执行以处理从服务器(诸如,图 2-5所示的服务器204a-204c)接收到的负载信息并且关于通告任播IP地址将指令发送至服 务器。例如,负载平衡模块814可以包括用于传递至超载服务器以停止通告一个或者多个任 播IP地址的指令。
[0070]图9包括服务器900的示例框图。在一些实施方式中,服务器900可以用作,例如,图 2-5所示的内容服务器204a-204c。在一些实施方式中,服务器900可以用于执行图7所示的 示例过程700。
[0071] 服务器900可以包括处理器902、存储器904、和网络接口 906。在一些实施方式中, 处理器902、存储器904、和网络接口 906可以通过与上面分别关于图8所示的处理器802、存 储器804、和网络接口 806论述的方式相似的方式来实施。
[0072]存储器904可以存储服务器数据库908,服务器数据库908可以包括例如与一个或 者多个域名相关联的多个任播IP地址。存储器904还可以包括状态表910,状态表910可以包 括正在由参与域名系统的服务器处理的正在进行的事务的状态信息。
[0073] 存储器904还可以包括由处理器902执行的若干应用。例如,存储器904可以包括服 务器应用912,服务器应用912可以由处理器902执行以执行与域名系统相关的各种服务器 操作。具体地,服务器应用912可以包括通告模块914和负载监视模块916。通告模块914可以 由处理器902执行以确定需要通告服务器数据库908中存储的任播IP地址中的哪些任播IP 地址。在一些实施方式中,通告模块914可以用于与图8所示的DNS服务器800进行通信以接 收指示任播IP地址中的哪些任播IP地址要被通告或者不要被通告的指令。
[0074]负载监视模块916可以由处理器902执行以确定服务器上的负载信息并且将负载 信息传递至DNS服务器。例如,负载监视模块916可以收集信息,诸如,但不限于,服务器响应 时间、点击次数、资源利用率、时延等。由负载监视模块916收集的负载信息可以传递至诸如 例如图8所示的DNS服务器800的DNS服务器。在一些实施方式中,负载监视模块916可以包括 指令,这些指令用于定期地收集负载信息或者在由DNS服务器请求时收集负载信息。
[0075]对本领域技术人员而言,本公开中描述的实施方式的各种修改可以是显而易见 的,并且,在不脱离本公开的精神或者范围的情况下,可以将本文中定义的通用原理应用于 其它实施方式。因此,权利要求书并不旨在受限于本文中所示的实施方式,而是应该符合与 本公开、本文中公开的原理和新颖特征一致的最大范围。
【主权项】
1. 一种用于平衡来自域名系统DNS服务器的内容服务器集合上的负载的方法,包括: 接收对内容服务器的网络地址的请求; 利用从多个任播网络地址中选择的网络地址,对所述请求作出响应; 从多个内容服务器中的至少一个内容服务器接收负载信息;以及 基于接收到的负载信息,指令一个或者多个过载内容服务器停止通告所述多个任播网 络地址中的一个或者多个任播网络地址。2. 根据权利要求1所述的方法,其中,利用从所述多个任播网络地址中选择的网络地址 对所述请求作出响应包括:以循环的方式从所述多个任播网络地址中选择所述网络地址。3. 根据权利要求1所述的方法,其中,利用从所述多个任播网络地址中选择的网络地址 对所述请求作出响应包括:从所述多个任播网络地址中随机选择所述网络地址。4. 根据权利要求1所述的方法,进一步包括:指令所述多个内容服务器中的所述一个或 者多个内容服务器中的其它内容服务器将接收到的正在进行的请求转发至所述一个或者 多个内容服务器,所述正在进行的请求与停止通告所述多个任播网络地址中的一个或者多 个任播网络地址的所述一个或者多个过载内容服务器相关联。5. 根据权利要求1所述的方法,进一步包括:从所述多个内容服务器中的所述至少一个 内容服务器接收附加负载信息,并且基于所述附加负载信息指令所述多个内容服务器中的 所述一个或者多个内容服务器重新通告所述多个任播网络地址中的所述一个或者多个任 播网络地址。6. -种用于对在服务器处从网络内的一个或者多个客户端计算机接收到的通信作出 响应的方法,包括: 从域名系统DNS服务器接收多个任播网络地址; 将所述多个任播网络地址通告给网络; 将负载信息发送至所述DNS服务器;以及 基于从所述DNS服务器接收到的指令,停止通告所述多个任播网络地址中的一个或者 多个任播网络地址。7. 根据权利要求6所述的方法,进一步包括: 从第一客户端接收第一请求,所述第一请求寻址至所述多个任播网络地址中的所通告 的一个任播网络地址; 维持与所述第一请求相关联的状态信息;以及 将所述状态传递至另一服务器,所述另一服务器被配置为通告所述多个任播网络地 址。8. 根据权利要求6所述的方法,进一步包括: 从第二客户端接收第二请求,所述第二请求寻址至所述多个任播网络地址中的一个任 播网络地址; 对所述第二请求进行封装,并且将所封装的第二请求转发至另一服务器。9. 根据权利要求8所述的方法,进一步包括:确定所述第二请求是所述第二客户端与所 述另一服务器之间的正在进行的事务的一部分。10. 根据权利要求8所述的方法,进一步包括: 响应于所封装的第二请求,从所述另一服务器接收通信;以及 将所述通信转发至所述客户端。11. 一种域名系统DNS,包括: DNS服务器,所述DNS服务器包括: 任播模块,所述任播模块被配置为: 接收对内容服务器的网络地址的请求,以及 利用从多个任播网络地址中选择的网络地址对所述请求作出响应, 负载平衡模块,所述负载平衡模块通信地耦合至所述任播模块,所述负载平衡模块被 配置为: 从多个内容服务器中的至少一个内容服务器接收负载信息,以基于所述负载信息识别 过载内容服务器,以及 指令所述过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网 络地址,以及 多个内容服务器,所述多个内容服务器能够与所述DNS服务器进行通信,所述多个内容 服务器中的每一个内容服务器包括: 通告模块,所述通告模块被配置为: 从所述DNS服务器接收指令,所述指令用于通告所述多个任播网络地址中的指定任播 网络地址,以及 通告所述多个任播网络地址中的所述指定任播网络地址,以及 负载监视模块,所述负载监视模块被配置为: 收集与所述服务器相关联的负载信息,以及 将所述负载信息传递至所述DNS服务器。12. 根据权利要求11所述的系统,其中,所述任播模块进一步被配置为:以循环的方式 从所述多个任播网络地址中选择所述网络地址。13. 根据权利要求11所述的系统,其中,所述负载平衡模块进一步被配置为:从所识别 的过载内容服务器接收附加负载信息,并且指令所述过载内容服务器重新通告所述多个任 播网络地址中的所述一个或者多个任播网络地址。14. 根据权利要求11所述的系统,其中,所述多个内容服务器中的每一个内容服务器进 一步被配置为:从第一客户端接收第一请求,所述第一请求寻址至所述多个任播网络地址 中的所述指定任播网络地址中的一个指定任播网络地址;维持与所述第一请求相关联的状 态信息;以及,将所述状态传递至另一服务器,所述另一服务器被配置为通告所述多个任播 网络地址。15. 根据权利要求11所述的系统,其中,所述多个内容服务器中的每一个内容服务器进 一步被配置为:从第二客户端接收第二请求,所述第二请求寻址至所述多个任播网络地址 中的所述指定任播网络地址中的一个指定任播网络地址;以及,对所述第二请求进行封装, 并且基于从另一服务器接收到的与所述第二请求相关联的状态信息,将所封装的第二请求 转发至所述另一服务器。16. -种其上编码有指令的非暂时性计算机可读存储介质,所述指令在由处理器执行 时,致使所述处理器执行方法,所述方法包括: 接收对内容服务器的网络地址的请求; 利用从多个任播网络地址中选择的网络地址,对所述请求作出响应; 从多个内容服务器中的至少一个内容服务器接收负载信息;以及 基于接收到的负载信息,指令一个或者多个过载内容服务器停止通告所述多个任播网 络地址中的一个或者多个任播网络地址。17. 根据权利要求16所述的非暂时性计算机可读存储介质,其中,利用从所述多个任播 网络地址中选择的网络地址对所述请求作出响应包括:以循环的方式从所述多个任播网络 地址中选择所述网络地址。18. 根据权利要求16所述的非暂时性计算机可读存储介质,其中,利用从所述多个任播 网络地址中选择的网络地址对所述请求作出响应包括:从所述多个任播网络地址中随机选 择所述网络地址。19. 根据权利要求16所述的非暂时性计算机可读存储介质,进一步包括:指令所述多个 内容服务器中的所述一个或者多个内容服务器中的其它内容服务器将接收到的正在进行 的请求转发至所述一个或者多个过载内容服务器,所述正在进行的请求与停止通告所述多 个任播网络地址中的一个或者多个任播网络地址的所述一个或者多个过载内容服务器相 关联。20. 根据权利要求16所述的非暂时性计算机可读存储介质,进一步包括:从所述多个内 容服务器中的所述至少一个内容服务器接收附加负载信息,并且基于所述附加负载信息, 指令所述多个内容服务器中的所述一个或者多个内容服务器重新通告所述多个任播网络 地址中的所述一个或者多个任播网络地址。
【文档编号】H04L29/12GK106031133SQ201580010789
【公开日】2016年10月12日
【申请日】2015年1月13日
【发明人】莱昂尼达斯·孔托萨纳西斯, 大卫·普雷索托, 安库尔·贾殷
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1