用于在内容分发网络(CDN)中动态汇集资源以用于实时和点播内容的高效分发的方法和请求路由器与流程

文档序号:18220452发布日期:2019-07-19 22:57阅读:340来源:国知局
用于在内容分发网络(CDN)中动态汇集资源以用于实时和点播内容的高效分发的方法和请求路由器与流程

本公开涉及内容分发网络、请求路由、以及实时(live)和点播(on-demand)内容分发。



背景技术:

cdn代表内容提供商向用户分发内容。通常,内容可以被分类成两个类别:实时内容和非实时(或点播)内容。

在本公开的上下文中,实时意味着“实时广播”,在这种情况下,相同的内容被同时分发给大量客户端。对于实时内容的所需吞吐量通常非常高,并且延迟非常关键并应该在毫秒级。非实时内容意味着“点播”内容。点播内容的一个示例是视频点播(vod)。

对于点播内容,诸如vod,存在两种基本场景。首先,存在吸引大量客户端的流行内容。尽管那些客户端可能请求在不同时隙获取流行内容,但他们可能请求同时观看该流行内容。在后一种情况下,它作为类似于“实时广播”的情形而结束。不同之处在于vod内容的大小从开始就是已知的,而对于实时内容则并非如此。对于这种类型的点播内容,对吞吐量的需求非常高,并且延迟应在毫秒级,因为延迟对那些用户也非常关键。在这一类别下,还考虑了以下两种情况:a.预定的主要事件,例如新电影/连续剧的发行。在这种情况下,预期大量客户端会在预定时间消费内容。因此,内容(新电影、新游戏发行)可以被预先定位在内容分发网络(cdn)中以用于预期的大量业务。b.随着时间推移,内容获得流行性。在这种情况下,此内容的业务逐渐增加。基本上,内容在其变流行之前就已经被cdn良好吸收了。

其次,还存在非流行的内容,也称为“长尾资产(long-tailasset)”,其只被少数客户端消费。该内容也必须被保存在cdn中,即使需求吞吐量很低且开始时的延迟不是很关键。对于这种类型的内容,大约“秒”级而不是“毫秒”级的延迟是可接受的。

在本公开的上下文中,如果合适的话和/或当合适时,例如接近于发行时间或在高峰消费期间,预定的主要事件(诸如电影发行)尽管是点播内容,但可以采用与实时内容相同的方式来处理。

图1示出了具有多层结构的典型cdn100部署。分发节点140、150、160被部署在边缘、区域和核心层中。边缘处的分发节点140面向最终用户,而核心层处的分发节点150、160连接到内容提供商170的来源服务器120。在本说明书的上下文中,核心层有时可以意指并包括区域以及核心层。

请求路由器(rr)110负责操控cdn业务,所述cdn业务包括:

-边缘处的分发节点和最终用户之间的业务;

-边缘、区域和核心层处的分发节点之间的业务;以及

-核心层处的分发节点和内容提供商的来源之间的业务。

为了减少分发节点的高速缓存中的占用空间以及为了在分发节点之间具有高效路由,基于内容的散列算法(例如,会合散列(rendez-voushashing)、一致性散列或其它算法等)在rr中被用于做出路由判定。它被称为cbrr(基于内容的请求路由)。

图2示出了实时内容分发,其中来自网格x135a(其可以对应于与区域或位置相关联的特定ip范围)的客户端130由于接近性而访问左侧的边缘分发节点140a,而来自网格y135b的客户端130也由于接近性而访问右侧的边缘分发节点140b。然后,客户端请求通过边缘分发节点而被代理到区域分发节点150、核心分发节点160,并最终到正提供实时内容的来源服务器120。

对于实时事件,因为大量客户端正同时观看相同的内容,所以来自最终用户130的所有请求都由于每层处的分发节点的高速缓存能力而被过滤掉。换句话说,几个并发的传入请求被排队,并且只有一个(例如第一个)被发送到下一(或更高)层分发节点。

最终,朝向来源120的每秒请求的数量显著减少。这引起更好地控制核心分发节点和来源服务器120之间的带宽使用。

实时内容的媒体片段通常具有较短的实时周期。这些片段优选被保存在存储器(固态驱动器(ssd)而不是硬盘驱动器(hhd))中,以提供对请求的快速响应,因为延迟对于实时内容分发是非常关键的。为了能够提供这样的快速响应,媒体片段(例如,所有媒体片段或媒体片段的重要部分)被存储在每层处的存储器或ssd中。它们被用于服务下一客户端请求。

如我们可以看到的,分发节点140、150、160的这种多层部署显著减少了朝向来源服务器的带宽使用,并且其有益于实时内容分发。

然而,这种多层部署不适合于非实时内容,诸如vod内容分发。



技术实现要素:

提供了一种在请求路由器(rr)中执行以用于在内容分发网络(cdn)中动态汇集资源以便高效分发实时和点播内容的方法。该方法包括从客户端接收对内容的请求;确定与对内容的请求相关联的内容类型,所述内容类型是以下项之一:实时内容和点播内容;以及基于所确定的内容类型,动态选择在边缘、区域或核心处的分发节点以用于内容分发,并将动态选择的节点分组到资源池中。该方法包括在资源池内选取分发节点以用于分发内容,以及向客户端发送包括在资源池内被选取的、将用于获取所请求内容的分发节点的地址的响应。

提供了一种请求路由器(rr),包括处理电路和存储器,存储器包含可由处理电路执行的指令,由此rr可操作以从客户端接收对内容的请求;确定与对内容的请求相关联的内容类型,所述内容类型是以下项之一:实时内容和点播内容;以及基于所确定的内容类型,动态选择在边缘、区域或核心处的分发节点以用于内容分发,并将动态选择的节点分组到资源池中。rr可操作以在资源池内选取分发节点以用于分发内容,以及向客户端发送包括在资源池内被选取的、将用于获取所请求内容的分发节点的地址的响应。

本文提供的方法、分发节点和请求路由器对内容分发网络操作的方式提出了改进。

某些实施例可以提供以下技术优点中的一个或多个。

本文描述的一些实施例可以增加对于实时内容分发和点播内容分发两者的cdn容量的使用。这导致每分发节点的总体吞吐量和存储的减少。

减少并更好地控制朝向内容来源的业务。

订户可以受益于建议的解决方案,以具有在他的装置方面的良好用户体验。

附图说明

图1是内容分发网络的示意图。

图2是用于实时内容分发的从最终用户到来源服务器的示例业务路由的示意图。

图3是根据实施例的用于点播内容分发的从最终用户到cdn的业务路由的示意图。

图4是根据实施例的基于内容、内容类型以及可用资源的智能路由的示意图。

图5a和b是根据一些实施例的对于长尾点播内容分发的动态本地来源的示意图。

图6是根据实施例的用于点播内容分发的业务流程。

图7是根据实施例的用于实时内容分发的业务流程。

图8是根据实施例的分发节点的示意图。

图9是根据实施例的请求路由器的示意图。

图10和11是云计算环境的示意图,在其中可以实现本文描述的一些功能性。

图12示出了根据实施例的方法。

图13示出了根据实施例的方法。

具体实施方式

现在将参考附图来描述各种特征和实施例,以向本领域技术人员充分传达本公开的范畴。

在一些备选实施例中,功能/动作可以不按动作序列中所注的顺序发生或者可以同时发生。此外,在一些图示中,一些框、功能或动作可以是可选的,并且可以或可以不执行;这些通常用虚线示出。

如先前所解释的,结合图1和2所描述的多层部署不适合于非实时内容,诸如vod内容分发。这是因为视频库通常包含很多内容(自适应比特率(abr)内容的上千个片段),其大部分随着时间的推移会失去其流行性。此外,存储器或ssd由于其存储容量而无法保存整个内容库。因此,大部分内容驻留在hdd上。

当存储在hdd上的内容响应于客户端请求而被提供时,它需要时间和计算量(例如i/o操作)。因此,它增加了cpu使用,并对响应增加了延迟。

因此,如果vod内容被存储在正分发实时内容的分发节点上,则这些分发节点将遭受对于实时内容分发的性能降级以及差的vod内容分发。

对于每个分发节点,总吞吐量可以通过每秒请求的数量、资产的数量和对应的资产大小来测量,并且可以使用以下公式来计算。

吞吐量(带宽)=n*fz*tps

在以上公式中,n是资产的数量,fz是资产的平均文件大小,并且tps是每秒事务(并发请求)的数量。

下表示出了实时内容和非流行点播内容的特性是非常不同的。

在没有性能损失的情况下,在单个cdn100内管理实时内容分发和点播内容分发两者是具有挑战性的任务。这是本公开试图解决的一个问题。建议的解决方案引起cdn容量的提高和总体延迟、吞吐量等的降低。

解决以上所陈述问题的建议的解决方案是通过使用请求路由器(rr)110将实时内容分发和点播内容分发(例如vod)组合到单个cdn100中,请求路由器(rr)110基于内容、内容类型以及可用资源做出路由判定。

先前已经结合图2描述了实时内容分发。如已经解释的,对于实时内容,使用多层部署,其中将媒体片段高速缓存在快速存储器存储装置(诸如存储器或ssd)中。相同类型的部署也可以被用于非常流行的点播内容,诸如在高峰消费时间的新电影发行。

图3示出了用于非流行点播内容分发的建议的内容分发机制。图3的解决方案的主要目标是:

-将非流行的点播内容(诸如vod)保存在相对慢的存储器存储装置(诸如hdd)中,除非/直到它变流行为止;

-将不同的点播内容分布到cdn100内的不同层处的不同分发节点140、150、160中,以便减少每分发节点的不同资产的数量;

-选取任何分发节点来服务请求非流行点播内容的客户端130,因为延迟不是关键的,并且因为客户端可以在其装置中缓冲内容;以及

-当点播内容变流行时,已高速缓存内容的分发节点将内容从慢速存储器存储装置提升到快速存储器存储装置,例如从hdd提升到存储器或ssd,并且此后从其存储器或ssd提供内容。

为了实现对于点播内容的这些目标,根据实施例的解决方案将cbrr(基于内容的请求路由)散列应用于在cdn内动态选择的所有节点。所有所选择的分发节点(例如边缘分发节点140、区域分发节点150或核心分发节点160)被分组到单个层中。在这些分发节点中,应用cbrr并选取它们中的一个。这种动态选择和分组过程也可以称为动态汇集或聚类(clustering)。客户端130请求然后被重定向到用于该特定内容的所选取的节点。所选取的分发节点从下一层分发节点或者从来源120取内容,并且将所接收的内容高速缓存在诸如hdd的慢速存储装置中(由于低流行性)。以这种方式,跨cdn100内的不同分发节点而分布不同点播内容。因此,每个分发节点具有较小数量的不同资产(在本公开的上下文中,资产可以与内容被可互换地使用)。此外,减少或完全避免了cdn100内相同内容的复制,并且增加了用于长尾内容的存储容量。

建议的解决方案依赖于cdn请求路由器(rr)110,其用于将对于非流行点播内容的客户端请求重定向到cdn100内的分发节点。所选取的分发节点可以位于边缘、区域或核心层。但是对于实时内容,cdnrr110总是基于接近性将客户端请求重定向到边缘节点140,接近性作为在所有其它度量(像如业务负载、健康检查、策略等)顶上的第一优先级。

图4示出了两个不同账号412经由cdn管理系统(ms)410而被配置。一个用于实时内容分发,另一个用于点播(例如vod)内容分发。当接收到客户端130请求时,cdnrr110检查账号下的内容类型。如果内容类型是“实时”,则cdnrr110根据接近性将网格x135a中客户端的客户端请求重定向到站点a145a处的边缘分发节点140a,并将网格y135b中客户端的客户端请求重定向到站点b145b处的边缘分发节点140b,如图4中标记为接近性420、430的线所示出的。

如果来自网格x135a的客户端发送对于非流行vod内容的请求,则cdnrr110将该请求重定向到例如站点c145c处的分发节点140c,如图4中所示出的,参考用被标记为“对于vod内容的请求”的框所标识的线440。在vod的情况下,不考虑接近性。

由于vod内容的流行性通常很低,因此内容可以保留在慢速存储装置中,例如hdd中,并且对于来自给定节点处的存储器或ssd的正在进行的实时内容分发没有影响。

图5a和b示出了非流行点播内容分发的备选场景。

如图5a中所示出的,区域层中的分发节点150a被定位以用于所请求的非流行内容分发。分发节点150a在第一时间基于cbrr而被定位。因为内容尚未被高速缓存,所以区域处的该分发节点150a将请求发送到内容提供商的来源120以获取内容。在接收到内容之后,分发节点150a存储内容并将其提供给客户端130。

由于同一分发节点150a也被用于其它账号,并且也被用于实时内容分发,因此它可能由于业务过载而被列入黑名单,例如对于超过节点级别处阈值的业务。在这种情况下,如图5b中所示出的,此分发节点150a对于最终用户获取任何内容(包括长尾点播内容)是不可用的。但是,在这种情况下,它被转换成用于高速缓存在其存储装置(hdd)中的那些长尾内容的本地来源。

当区域处的分发节点150a由于业务过载而被列入黑名单时,它转变为用于其存储装置中那些长尾内容的本地来源。基于cbrr,边缘处的分发节点140a被挑选以用于分发所请求的非流行点播内容。由于内容不在其高速缓存中,因此边缘处的分发节点140a将请求发送到本地来源150a(区域处的分发节点)以获取内容并将其提供给最终用户130。

此时,边缘分发节点140a可以将内容存储在其高速缓存中或者不存储,这取决于所请求的内容的流行性。此选项(基于流行性而进行高速缓存)可以在节点级别被配置。如果做出不对内容进行高速缓存的判定,则分发节点140a仅将客户端请求代理到本地来源150a,并将响应代理回客户端130而不存储它。这意味着在cdn100内只有非流行内容的一份拷贝,其仍然在区域节点150a中。如果做出对内容进行高速缓存的判定,则边缘处的分发节点140a将内容存储在其高速缓存中。这意味着同一内容的两个拷贝被保存在cdn100内,并且对内容进行高速缓存的边缘节点140a可以服务后续请求540。

首先获取来自来源服务器的内容的区域处的分发节点150a被认为是cdn100内的本地来源。hdd中那些长尾/非流行内容(在cdn内可能只有其的一个拷贝)应作为高优先级来处理,以便在由于盘空间(hdd)的过度使用而触发盘上的驱逐时被保存。然而,如果在驱逐期间确实移除了那些内容,则分发节点仍然可以去来源120获取内容,这是折衷。

图6示出了根据实施例的用于vod内容分发的业务流程。在步骤601,客户端130朝rr110发送请求以获取内容。在步骤602,rr110基于传入url来定位账号。在步骤603,rr110获取账号下的内容类型(例如vod),例如,这可以是内容的属性,或者它可以是账号的属性。指示内容类型的其它方式也是可能的。在步骤604,rr110检索客户端因特网协议(ip)地址,并定位覆盖客户端ip地址的网格135。在步骤605,对于vod内容,rr110挑选账号下的一些或所有站点145。在步骤606,rr110基于所选取站点145内的所有资源140、150、160(在边缘、区域或核心)在账号下的可用性(cpu负载、吞吐量、存储器、高速缓存未命中等)来选取它们。在步骤607,rr110使用散列算法对所请求的内容和所选取的资源应用基于内容的请求路由。此算法的特殊性在于,它以这样的方式跨整个cdn100来分布内容,所述方式是点播非流行内容在cdn100中被复制尽可能少的次数并且每个分发节点140、150、160包含尽可能少的点播内容。在步骤608,rr110将请求重定向到使用基于内容的请求路由算法所选取的分发节点。在图6的示例实施例中,例如,所选取的分发节点是站点b145b处的核心dn160b。在步骤609,rr110向客户端130发送响应,该响应带有具有站点b145b处的所选取的核心分发节点160b的地址的“302重定向”。在步骤610,客户端130发送请求以获取来自站点b145b处的核心dn160b的内容。在步骤611,站点b145b处的核心dn160b为内容来定位账号,并确定所请求的内容不在其高速缓存中。在步骤612,站点b145b处的核心dn160b从rr110获取来源的目的地。为此,站点b145b处的核心dn160b可以向rr110发送对于内容目的地来源的请求,并且rr可以在接收到对于内容目的地来源的请求时返回内容的目的地来源。在步骤613,站点b145b处的核心dn160b向来源120发送对于内容的请求。在步骤614,站点b145b处的核心dn160b接收200ok和内容作为对其请求的返回。在步骤615,站点b145b处的核心dn160b将内容存储在其高速缓存中。在步骤616,站点b145b处的核心dn160b向客户端130返回200ok和内容。

图7示出了根据实施例的用于实时内容分发的业务流程。在步骤701,客户端130朝rr110发送请求以获取内容。在步骤702,rr110基于传入url来定位账号。在步骤703,rr110获取账号下的内容类型(例如实时内容),例如,其可以是内容的属性,或者其可以是账号的属性。指示内容类型的其它方式也是可能的。在步骤704,rr110检索客户端ip地址,并定位覆盖客户端ip地址的网格135。在步骤705,对于实时内容,rr110基于接近性而应用网格站点关联,即rr110找到最接近于客户端的站点145。在步骤706,rr110基于所选取站点内的资源在账号下的可用性(cpu负载、吞吐量、存储器、高速缓存未命中等)来选取它们。在步骤707,rr110使用散列算法对站点内所选取的资源和所请求的内容应用基于内容的请求路由。此算法优选地选取在位置方面接近于客户端的边缘dn140a以用于提供实时内容。在步骤708,rr110使用基于内容的请求路由算法将请求重定向到边缘处的所选取分发节点140a。所选取的dn140a位于站点a145a的边缘,并且最接近于客户端130。在图6的示例实施例中,例如,所选取的分发节点是站点b处的核心dn。在步骤709,rr110向客户端130发送响应,该响应带有具有站点a145a处的所选取的边缘dn140a的地址的“302重定向”。在步骤710,客户端130发送请求以获取来自站点a145a处的边缘dn140a的内容。在步骤711,站点a145a处的边缘dn140a为内容来定位账号,并确定所请求的内容不在其高速缓存中。在步骤712,站点a145a处的边缘dn140a向rr110发送请求以从rr110获取下一层分发节点(例如,区域dn150或核心dn160)的ip地址或完全合格的域名(fqdn),并从rr110获取ip地址或fqdn。在步骤713,站点a145a处的边缘dn140a向站点a145a处的核心dn160a发送对于内容的请求。在步骤714,站点a145a处的核心dn160a定位账号,并且发现所请求的内容不在其高速缓存中。在步骤715,站点a145a处的核心dn160a向rr110发送请求以获取来源120的ip地址或fqdn,并且响应于该请求,接收到来源120的ip地址或fqdn。在步骤716,站点a145a处的核心dn160a向来源120发送请求以获取实时内容。在步骤717,站点a145a处的核心dn160a接收200ok和内容。在步骤718,站点a145a处的核心dn160a将内容存储在其高速缓存中。在步骤719,站点a145a处的核心dn160a将200ok和内容返回到站点a145a处的边缘dn140a。在步骤720,站点a145a处的边缘dn140a对内容进行高速缓存。在步骤721,站点a145a处的边缘dn140a向客户端130发送200确认和内容。

图8是适合于实现本文公开的实施例的方面的分发节点(dn)140、150、160的框图。dn140、150、160包括通信接口,其可以包括传送器810和接收器820。通信接口通常包括模拟和/或数字组件,其用于通过无线或有线传输并直接或经由网络180(图1)向和从客户端装置和/或向和从其它dn140、150、160或其它网络节点(例如rr110)发送和接收通信。本领域技术人员将理解,dn800的框图必要地省略了对于完整理解本公开不必要的许多特征。

虽然没有示出dn140、150、160的所有细节,但是dn140、150、160包括一个或几个通用或专用处理器或处理电路830或其它微控制器,其用适合软件编程指令和/或固件所编程以实行本文描述的dn140、150、160的一些或所有功能性。此外或备选地,dn140、150、160可以包括被配置成实行本文描述的dn140、150、160的一些或所有功能性的各种数字硬件块(例如,一个或多个专用集成电路(asic)、一个或多个现成的数字或模拟硬件组件、或它们的组合)(未示出)。

处理器830可以使用诸如随机存取存储器(ram)、ssd或hdd的存储器850来存储数据和编程指令,所述指令当被处理器830执行时实现本文描述的所有或部分功能性。存储器还可以用于存储内容,以便在cdn100内分布。

hdd或存储装置860还可以用于存储对于实现本文描述的功能性所必需和/或适合的数据,以及用于存储编程指令,所述编程指令当在处理器530上执行时实现本文描述的所有或部分功能性。

此外,dn140、150、160可以包括合适的任何种类的功率供应和天线。

本公开的一个实施例可以被实现为存储在计算机可读存储介质上的计算机程序产品,所述计算机程序产品包括被配置成使处理器830实行本文描述的步骤的编程指令。

图9是适合于实现本文公开的实施例的方面的请求路由器(rr)110的框图。rr110包括通信接口,其可以包括传送器910和接收器920。通信接口通常包括模拟和/或数字组件,其用于通过无线或有线传输并直接或经由网络180(图1)向和从dn140、150、160或其它网络节点发送和接收通信。本领域技术人员将理解,rr110的框图必要地省略了对于完整理解本公开不必要的许多特征。

虽然没有示出rr110的所有细节,但是rr110包括一个或几个通用或专用处理器或处理电路930或其它微控制器,其用适合软件编程指令和/或固件所编程以实行本文描述的rr110的一些或所有功能性。此外或备选地,rr110可以包括被配置成实行本文描述的rr110的一些或所有功能性的各种数字硬件块(例如,一个或多个专用集成电路(asic)、一个或多个现成的数字或模拟硬件组件、或它们的组合)(未示出)。

处理器930可以使用诸如随机存取存储器(ram)、ssd或hdd的存储器950来存储数据和编程指令,所述指令当被处理器930执行时实现本文描述的所有或部分功能性。存储器还可以用于存储关于cdn110和cdn内的dn140、150、160、关于存储在dn中的内容、关于内容的分布、关于账号等的数据。

存储装置960还可以用于存储对于实现本文描述的功能性所必需和/或适合的数据,以及用于存储编程指令,所述编程指令当在处理器930上执行时实现本文描述的所有或部分功能性。

此外,rr110可以包括合适的任何种类的功率供应940和天线。

本公开的一个实施例可以被实现为存储在计算机可读存储介质上的计算机程序产品,所述计算机程序产品包括被配置成使处理器930实行本文描述的步骤的编程指令。

转到图10和11,根据另一实施例,提供了云计算环境1000、1100中的rr实例、dn实例或虚拟器件1120,云计算环境1000、1100提供了用于运行rr或dn实例或虚拟器件1120的处理电路1160和存储器1190。存储器包含可由处理电路执行的指令1195,由此rr或dn实例或虚拟器件1120可操作以执行如先前所描述的方法。

云计算环境1000、1100包括通用网络装置,通用网络装置包括硬件1130和(一个或多个)网络接口控制器1170(nic),硬件1130包括一组一个或多个处理器或处理电路1160,所述一组一个或多个处理器或处理电路1160可以是商用现成(cots)处理器、指定的专用集成电路(asic)、或者包括数字或模拟硬件组件的任何其它类型的处理电路或专用处理器,网络接口控制器1170也称为网络接口卡,其包括物理网络接口1180。通用网络装置还包括其中存储有软件1195和/或可由处理器1160执行的指令的非临时性机器可读存储介质1190-2。在操作期间,(一个或多个)处理器1160执行软件1195来实例化有时被称为虚拟机监视器(vmm)的管理程序1150,以及由管理程序1150运行的一个或多个虚拟机1140。虚拟机1140是物理机的软件实现,其运行程序,就像它们在物理的、非虚拟化的机器上执行一样;并且应用通常不知道它们正在虚拟机上运行而不是在“裸机(baremetal)”主机电子装置上运行,尽管一些系统提供准虚拟化,这允许操作系统或应用出于优化目的而知道虚拟化的存在。每个虚拟机1140和执行该虚拟机的硬件1130的该部分(无论它是专用于该虚拟机的硬件和/或被该虚拟机与(一个或多个)虚拟机1140中的其它虚拟机暂时共享的硬件的时间片)形成单独的(一个或多个)虚拟网络元件(vne)。

管理程序1150可以向虚拟机1140呈现看起来像连网硬件的虚拟操作平台,并且虚拟机1140可以用于实现诸如控制通信和(一个或多个)配置模块以及(一个或多个)转发表的功能性,硬件的这种虚拟化有时被称为网络功能虚拟化(nfv)。因此,nfv可用于将许多网络设备类型整合到行业标准的大容量服务器硬件、物理交换机和物理存储装置上,其可位于数据中心和客户驻地设备(cpe)中。dn或rr实例的不同实施例可以在(一个或多个)虚拟机1140中的一个或多个上被实现,并且所述实现可以被相异地进行。

本文描述的任何适当的步骤、方法或功能也可以通过一个或多个功能模块来执行。例如,节点可以包括多个模块,例如收发器模块、处理模块和存储模块。每个模块可以包含子模块,如对本领域技术人员将显而易见的。例如,收发器模块可以包括发送模块和接收模块。这些模块可以执行本文结合一些实施例所描述的步骤或功能。

图12示出了在请求路由器中执行的方法1200,包括以下步骤:

-步骤1201,从客户端接收对于请求的内容的请求;

-步骤1202,确定与所请求的内容相关联的内容类型;

-步骤1204,基于内容类型并可选地基于客户端的位置来选取分发节点;以及

-步骤1209,向客户端发送响应,所述响应包括将用于获取所请求的内容的分发节点的地址。

上面的选取步骤可以备选地被替换为:判定包含用于内容分发的分发节点的列表的资源池,例如用于实时内容分发的多层层部署(在同一站点内或跨站点);以及对于点播内容,特别是长尾资产,在逻辑视图中将多层部署转换成单层或缩减层部署,并通过应用cbrr来从此资源池中选取分发节点。

该方法的选取步骤可以进一步包括运行基于内容的请求路由散列算法,所述散列算法可以是会合散列或一致性散列,步骤1205。

该方法的确定步骤可以进一步包括访问账号以获取内容类型。所述账号可以经由内容分发网络管理系统来配置。内容类型可以是“实时内容”,步骤1203,并且如果内容类型是实时内容,则选取步骤可以包括选取客户端附近的边缘节点,步骤1206。

内容类型可以是“点播内容”,步骤1203,并且如果内容类型是点播内容,则选取步骤可以包括选取内容分发网络中使得所请求的内容在内容分发网络中被复制尽可能少的次数并且使得每个分发节点包含尽可能少的点播内容的任何节点,步骤1207。被复制尽可能少的次数可能意味着没有复制、1、2或任何其它数量的复制,其与内容分发网络中的节点数量相比是少的。

内容分发网络中的任何分发节点可操作以包括存储在多层存储管理系统上的“点播内容”和“实时内容”,例如存储在hdd上的“点播内容”,以及存储在存储器或ssd中的“实时内容”,步骤1208。

提供了一种包括分发节点和请求路由器的内容分发网络,所述内容分发网络可操作以执行根据所描述的实施例的方法。

提供了一种分发节点,包括处理电路、可以采用硬盘驱动器和固态驱动器形式的存储器、收发器和功率供应,所述分发节点可操作以执行根据所描述的实施例的方法。

提供了一种包括处理电路、存储器、收发器和功率供应的请求路由器,所述请求路由器可操作以执行根据所描述的实施例的方法。

提供了一种设备,包括收发器模块、处理模块和存储模块,并且可操作以执行根据所描述的实施例的方法。

提供了一种在其上存储有用于执行根据所描述的实施例的方法的指令的非暂时性计算机可读介质。

图13示出了方法1300,其包括先前描述的步骤和元素的一些重新排列。

在请求路由器(rr)中执行以用于在内容分发网络(cdn)中动态汇集资源以便高效分发实时和点播内容的方法1300。该方法包括从客户端接收对内容的请求(1301);确定与对内容的请求相关联的内容类型,所述内容类型是以下项之一:实时内容和点播内容(1302);以及基于所确定的内容类型,动态选择在边缘、区域或核心处的分发节点以用于内容分发,并将动态选择的节点分组到资源池中(1303)。该方法包括在资源池内选取分发节点以用于分发内容(1304),以及向客户端发送包括在资源池内被选取的、将用于获取所请求内容的分发节点的地址的响应(1305)。

所述方法还包括,如果内容没有被高速缓存在资源池内被选取的分发节点中,则选取来源服务器或资源池内的下一层分发节点来取内容。如果内容类型是实时内容,则选取分发节点的步骤包括在资源池内选取边缘节点,所述边缘节点在客户端附近。所述方法还包括,如果内容类型是点播内容,则将资源池转换成单层逻辑视图,并且选取分发节点的步骤包括通过应用基于内容的请求路由(cbrr)从资源池的单层逻辑视图中选取分发节点。如果内容类型是点播内容,则单层逻辑视图包括cdn的所有分发节点,并且选取分发节点的步骤包括选取cdn中使得所请求的内容在cdn中被复制尽可能少的次数并且使得每个分发节点包含尽可能少的点播内容的任何节点。在资源池内被选取的分发节点可操作以包括实时内容和点播内容,实时内容可被存储在快速存储器中,并且点播内容可被存储在慢速存储器中。确定内容类型可以包括访问账号以获取内容类型。所述账号可以经由内容分发网络管理系统来配置。

回到图9,提供了一种请求路由器(rr)110,包括处理电路930和存储器950,存储器950包含可由处理电路930执行的指令,由此rr110可操作以从客户端接收对内容的请求;确定与对内容的请求相关联的内容类型,所述内容类型是以下项之一:实时内容和点播内容;以及基于所确定的内容类型,动态选择在边缘、区域或核心处的分发节点以用于内容分发,并将动态选择的节点分组到资源池中。rr可操作以在资源池内选取分发节点以用于分发内容,以及向客户端发送包括在资源池内被选取的、将用于获取所请求内容的分发节点的地址的响应。

所述rr还可操作以,如果内容没有被高速缓存在资源池内被选取的分发节点中,则选取来源服务器或资源池内的下一层分发节点来取内容。所述rr还可操作以,如果内容类型是实时内容,则在资源池内选取边缘节点,所述边缘节点在客户端附近。所述rr还可操作以,如果内容类型是点播内容,则将资源池转换成单层逻辑视图,并且通过应用基于内容的请求路由(cbrr)从资源池的单层逻辑视图中选取分发节点。内容类型可以是点播内容,则单层逻辑视图可包括cdn的所有分发节点,并且所述rr还可操作以选取cdn中使得所请求的内容在cdn中被复制尽可能少的次数并且使得每个分发节点包含尽可能少的点播内容的任何节点。在资源池内被选取的分发节点可操作以包括实时内容和点播内容,实时内容可被存储在快速存储器中,并且点播内容可被存储在慢速存储器中。所述rr还可操作以访问账号以获取内容类型以用于确定内容类型。所述账号可以经由内容分发网络管理系统来配置。

内容分发网络(cdn)100包括如先前所描述的分发节点(dn)140、150、160和请求路由器(rr)110,rr可操作用于在cdn中动态汇集资源以便高效分发实时和点播内容。

还提供了一种在其上存储有用于执行本文所描述的任何方法的步骤的指令的非暂时性计算机可读介质960。

受益于前面描述和相关联附图中呈现的教导,本领域技术人员将想到修改和其它实施例。因此,要理解的是,修改和其它实施例(诸如除了上面描述的实施例的那些特定形式之外的特定形式)旨在被包括在本公开的范畴内。所描述的实施例仅仅是说明性的,并且不应以任何方式被认为是约束性的。所寻求的范畴由所附权利要求而不是由前面的描述给出,并且落入权利要求的范畴内的所有变化和等效物旨在被涵盖于其中。尽管本文可以采用特定术语,但是它们仅在一般性和描述性意义上被使用,而不是出于限制的目的。

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