一种CDN动态加速方法、装置及CDN边缘节点与流程

文档序号:30440557发布日期:2022-06-17 22:08阅读:189来源:国知局
一种CDN动态加速方法、装置及CDN边缘节点与流程
一种cdn动态加速方法、装置及cdn边缘节点
技术领域
1.本发明涉及一种cdn技术领域,特别是涉及在一种cdn动态加速方法、装置及cdn边缘节点。


背景技术:

2.cdn(content delivery network,内容分发网络)中包括cdn边缘节点。客户端可以向cdn边缘节点发送用于获取内特定内容的请求。cdn边缘节点在接收到请求后确定自身的缓存中是否包含该特定内容,如果自身的缓存中包括该特定内容。将cdn边缘节点自身缓存的该特定内容发送至客户端。如果自身的缓存中不包括该特定内容,则cdn边缘点向cdn上层节点请求该特定内容。
3.cdn可以通过将内容缓存与距离客户端相对较近的cdn边缘节点,当客户端设备再次请求相同的内容时,cdn边缘节点可以将本地缓存的内容发送至用户,从而加速客户端设备获取到该内容的速度。
4.但是对于动态内容,由于动态内容会随时间而变化,因此即使cdn边缘节点将动态内容缓存,当客户端再次请求该动态内容时,由于动态内容发生了改变,因此cdn边缘节点无法直接将本地缓存的动态内容发送至客户端,需要通过cdn上层节点重新请求该动态内容,导致下发动态内容的时间相对较长。
5.如何有效加速动态内容的下发成为亟待解决的技术问题。


技术实现要素:

6.本发明实施例的目的在于提供一种cdn动态加速方法、装置及cdn边缘节点,以实现提高cdn网络中动态内容的下发速度。具体技术方案如下:
7.在本发明实施例的第一方面,提供了一种cdn动态加速方法,应用于cdn边缘节点,所述方法包括:
8.接收客户端发送的内容请求;
9.判断所述内容请求所请求的目标内容是否为动态内容;
10.如果所述目标内容为动态内容,向第一源站服务器请求所述目标内容,所述第一源站服务器与所述cdn边缘节点之间的连接没有经过cdn上层节点。
11.在一种可能的实施例中,所述判断所述请求所请求的目标内容是否为动态内容,包括:
12.获取上游ip地址,所述上游ip地址为按照预设的动态选路规则确定得到的、所述内容请求的路由中位于所述cdn边缘节点下一跳的网络设备的ip地址;
13.判断所述上游ip地址是否为源站服务器的ip地址;
14.如果所述上游ip地址为源站服务器的ip地址,确定所述内容请求所请求的内容为动态内容。
15.在一种可能的实施例中,所述判断所述上游ip地址是否为源站服务器的ip地址,
包括:
16.根据所述上游ip地址的标识,判断所述上游ip地址是否为源站服务器的ip地址。
17.在一种可能的实施例中,所述获取上游ip地址,包括:
18.向数据库服务器发送地址请求,以使得所述数据库服务器按照预设的动态选路规则确定上游ip地址;
19.接收所述数据库服务器反馈的上游ip地址。
20.在一种可能的实施例中,在所述判断所述内容请求所请求的目标内容是否为动态内容之后,所述方法还包括:
21.如果所述目标内容不为动态内容,通过cdn上层节点向第二源站服务器请求所述目标内容。
22.在本发明实施例的第二方面,提供了一种cdn动态加速装置,应用于cdn边缘节点,所述装置包括:
23.接收模块,接收客户端发送的内容请求;
24.判断模块,用于判断所述内容请求所请求的目标内容是否为动态内容;
25.回源模块,用于如果所述目标内容为动态内容,向第一源站服务器请求所述目标内容,所述第一源站服务器与所述cdn边缘节点之间的连接没有经过cdn上层节点。
26.在一种可能的实施例中,所述判断模块,包括:
27.获取子模块,用于获取上游ip地址,所述上游ip地址为按照预设的动态选路规则确定得到的所述内容请求的路由中位于所述cdn边缘节点下一跳的网络设备的ip地址;
28.判断子模块,用于判断所述上游ip地址是否为源站服务器的ip地址;
29.确定子模块,用于如果所述上游ip地址为源站服务器的ip地址,确定所述内容请求所请求的内容为动态内容。
30.在一种可能的实施例中,所述判断子模块,具体用于根据所述上游ip地址的标识,判断所述上游ip地址是否为源站服务器的ip地址。
31.在一种可能的实施例中,所述获取子模块,具体用于向数据库服务器发送地址请求,以使得所述数据库服务器按照预设的动态选路规则确定上游ip地址;
32.接收所述数据库服务器反馈的上游ip地址。
33.在一种可能的实施例中,所述回源模块还用于在所述判断所述内容请求所请求的目标内容是否为动态内容之后,如果所述目标内容不为动态内容,通过cdn上层节点向第二源站服务器请求所述目标内容。
34.在本发明实施例的第三方面,提供了一种cdn边缘节点,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
35.存储器,用于存放计算机程序;
36.处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
37.在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如前述第一方面所述的方法步骤。
38.本发明实施例有益效果:
39.本发明实施例提供的一种cdn动态加速方法、装置及cdn边缘节点,由于第一源站服务器与cdn边缘节点之间的连接没有经过cdn上层节点,因此针对动态内容,cdn边缘节点可以直接进行回源,缩短了获取动态内容的路由路径,提高了cdn网络中动态内容的下发速度。
40.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
42.图1为本发明实施例提供的cdn的一种架构示意图;
43.图2为本发明实施例提供的cdn动态加速方法的一种流程示意图;
44.图3a所示为本发明实施例提供cdn的另一种架构示意图;
45.图3b所示为本发明实施例提供cdn的另一种架构示意图;
46.图4所示为本发明实施例提供的cdn动态加速装置的一种结构示意图;
47.图5所示为本发明实施例提供的cdn边缘节点的一种结构示意图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.为更好的对本发明实施例提供的cdn动态加速方法进行说明,下面将对本发明实施例提供的cdn动态加速方法的一种可能的应用场景进行示例性说明。可以理解的是,本发明实施例提供的cdn动态加速方法在不同的实施例中可以应用于不同的应用场景,以下示例对此不做任何限制。
50.参见图1,图1所示为本发明实施例提供的cdn的一种架构示意图。其中,包括:
51.客户端101、cdn边缘节点102、cdn上层节点103以及源站服务器104。
52.源站服务器104中存储有客户端101所请求的内容,为方便描述假设该内容为视频,则客户端101请求该视频的过程可以是:
53.客户端101向cdn边缘节点102发送请求,该请求用于请求该视频。cdn边缘节点102接收到该请求后,检索cdn边缘节点102本地是否存储有该视频,如果cdn边缘节点102本地存储有该视频,则向客户端101返回该视频。如果cdn边缘节点102本地没有存储该视频,则将该请求转发至cdn上层节点103中。
54.cdn上层节点103接收到该请求后,检索上层节点103本地是否存储有该视频,如果cdn上层节点103本地存储有该视频,则向cdn边缘节点102返回该视频。如果cdn上层节点103本地没有存储该视频,则将该请求转发至源站服务器104中。
55.一个cdn边缘节点102与一个源站服务器104之间可以存在一层或多层cdn上层节点103。当存在多层cdn上层节点103时,除最后一层cdn上层节点103以外,其他每层cdn上层节点103在本地没有存储视频的情况下将请求转发至下一层cdn上层节点103,最后一层cdn上层节点103在本地没有存储视频的情况下将请求转发至源站服务器104。其中,最后一层cdn上层节点103是指距离cdn边缘节点102最远的一层cdn上层节点。
56.在客户端101第一次请求该视频时,由于cdn边缘节点102与cdn上层节点103中尚未缓存该视频,则该请求将被转发至源站服务器104,源站服务器104通过cdn上层节点103、cdn边缘节点102将视频转发至客户端101。在转发过程中cdn边缘节点102和cdn上层节点103可以缓存该视频。则在客户端101再次请求该视频时,由于cdn边缘节点102中已经缓存在视频,因此cdn边缘节点可以向客户端101发送该视频。cdn边缘节点102与客户端101之间的距离较近,因此客户端101可以较快的获取到所请求的视频。
57.但是,如果客户端101所请求的内容为动态内容,例如客户端101所请求的内容为一网页,该网页中的部分内容会随时间变化而变化,例如网页中包括推荐页,推荐页中推荐的内容可能随时间变化而变化。则在客户端101第一次请求该网页时,虽然cdn边缘节点102可以缓存该网页,但是所缓存的网页为客户端101第一次请求该网页时的网页。当客户端101第二次请求该网页时,由于第二次请求该网页时的网页与第一次请求该网页时的网页可能发生变化,因此cdn边缘节点102不能够直接将本地缓存的网页直接发送至客户端101,需要再次经过cdn上层节点103将请求转发至源站服务器104,并由源站服务器104将最新的网页经过cdn上层节点103、cdn边缘节点102转发至客户端101,该过程花费时间较长。
58.可见图1所示的cdn架构只能够加速静态内容而无法加速动态内容。基于此,本发明实施例提供了一种cdn动态加速方法,该方法应用于cdn边缘节点,方法可以如图2所示,包括:
59.s201,接收客户端发送的内容请求。
60.s202,判断内容请求所请求的目标内容是否为动态内容。
61.s203,如果目标内容为动态内容,向第一源站服务器请求目标内容,第一源站服务器与cdn边缘节点之间的连接没有经过cdn上层节点。
62.选用该实施例,由于第一源站服务器与cdn边缘节点之间的连接没有经过cdn上层节点,因此针对动态内容,cdn边缘节点可以直接进行回源,缩短了获取动态内容的路由路径,提高了cdn网络中动态内容的下发速度。
63.另一方面,cdn边缘节点对静态内容和动态内容分别进行处理,可以通过不同的逻辑分别实现对静态内容和动态内容的加速。即可以实现在保持原有cdn架构的加速静态内容的功能的前提下,对动态内容进行加速。
64.其中,在s201中内容请求为客户端发送的用于请求特定内容的消息,该特定内容根据实际情况的不同可以不同。
65.在s202中,动态内容可以是指随时间变化而变化的内容。在一种可能的实施例中,可以是获取上游ip地址,上游ip地址为按照预设的动态选路规则确定得到的、内容请求的路由中位于cdn边缘节点下一跳的网络设备的ip地址。判断上游ip地址是否为源站服务器的ip地址,如果上游ip地址为源站服务器的ip地址,则确定内容请求所请求的内容为动态内容。如果上游ip地址为cdn上层节点的ip地址,则确定内容请求所请求的内容为静态内
容。
66.示例性的,假设按照预设的动态选路规则,可以确定得到内容请求的路由为客户端

cdn边缘节点

cdn上层节点

源站服务器,则上游ip地址为cdn上层节点的ip地址,假设按照预设的动态选路规则,可以确定得到内容请求的路由为客户端

cdn边缘节点

源站服务器,则上游ip地址为源站服务器的ip地址。内容请求的路由为从客户端到源站服务器的路由,由于可以将源站服务器视为数据源,因此该路由中cdn边缘节点的下一跳的网络设备相比于cdn边缘节点更加接近数据源,因此本文中将该路由中cdn边缘节点的下一跳的网络设备的ip地址称为上游ip地址。
67.上游ip地址可以是cdn边缘节点按照预设的动态选路规则确定的,也可以是由其他电子设备按照预设的动态选路规则确定的。示例性的,在一种可能的实施例中,cdn边缘节点可以向数据库服务器发送地址请求,以使得数据库服务器按照预设的动态选路规则确定上游ip地址,并将所确定的上游ip地址发送至cdn边缘节点。
68.预设的动态选路规则可以是由用户根据实际经验或需求预先输入的,也可以是由电子设备按照预设规则生成规则自动生成的,本实施例对此不做任何限制。
69.在s203中,第一源站服务器与cdn边缘节点之间的连接没有经过cdn上层节点,可以是指第一源站服务器与cdn边缘节点之间直接连接。第一源站服务器的数量可以是一个也可以是多个,当第一源站服务器的数量为多个时,cdn边缘节点向存储有目标内容的第一源站服务器请求目标内容。
70.如果目标内容不为动态内容,即目标内容为静态内容,则cdn边缘节点可以通过cdn上层节点向第二源站服务器请求目标内容,关于向第二源站服务器请求目标内容的流程可以参见前述图1所示的实施例,在此不再赘述。其中,第二源站服务器为与第一源站服务器不同的源站服务器。
71.为更清楚的对本发明实施例提供的cdn动态加速方法进行说明,可以参见图3a,图3a所示为本发明实施例提供cdn的另一种架构示意图。其中包括:客户端101、cdn边缘节点102、cdn上层节点103、第一源站服务器105、第二源站服务器106。
72.如果客户端101发送的内容请求所请求的内容为动态内容,则cdn边缘节点102通过第一源站服务器105直接进行回源。客户端101发送的内容请求所请求的内容为静态内容,则cdn边缘节点102通过第二源站服务器106进行回源,回源的流程与前述图1所示相同,可以参见前述关于图1的相关说明,在此不再赘述。
73.也可以参见图3b,图3b所示为本发明实施例提供cdn的另一种架构示意图。其中包括:客户端101、cdn边缘节点102、cdn上层节点103、第一源站服务器105、第二源站服务器106、数据库服务器107。
74.其中,数据库服务器107用于按照预设的选路规则确定上游ip地址并发送至cdn边缘节点102,cdn边缘节点102判断上游ip地址是否为源站服务器的ip地址,如果上游ip地址为源站服务器的ip地址,则cdn边缘节点直接通过第一源站服务器105回源,如果上游ip地址为cdn上层节点103的ip地址,则cdn边缘节点102经由cdn上层节点103向第二源站服务器106回源。
75.参见图4,图4所示为本发明实施例提供的cdn动态加速装置的一种结构示意图,可以包括:
76.接收模块401,接收客户端发送的内容请求;
77.判断模块402,用于判断所述内容请求所请求的目标内容是否为动态内容;
78.回源模块403,用于如果所述目标内容为动态内容,向第一源站服务器请求所述目标内容,所述第一源站服务器与所述cdn边缘节点之间的连接没有经过cdn上层节点。
79.在一种可能的实施例中,所述判断模块402,包括:
80.获取子模块,用于获取上游ip地址,所述上游ip地址为按照预设的动态选路规则确定得到的所述内容请求的路由中位于所述cdn边缘节点下一跳的网络设备的ip地址;
81.判断子模块,用于判断所述上游ip地址是否为源站服务器的ip地址;
82.确定子模块,用于如果所述上游ip地址为源站服务器的ip地址,确定所述内容请求所请求的内容为动态内容。
83.在一种可能的实施例中,所述判断子模块,具体用于根据所述上游ip地址的标识,判断所述上游ip地址是否为源站服务器的ip地址。
84.在一种可能的实施例中,所述获取子模块,具体用于向数据库服务器发送地址请求,以使得所述数据库服务器按照预设的动态选路规则确定上游ip地址;
85.接收所述服务器反馈的上游ip地址。
86.在一种可能的实施例中,所述回源模块403还用于在所述判断所述内容请求所请求的目标内容是否为动态内容之后,如果所述目标内容不为动态内容,通过cdn上层节点向第二源站服务器请求所述目标内容。
87.本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
88.存储器503,用于存放计算机程序;
89.处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
90.接收客户端发送的内容请求;
91.判断所述内容请求所请求的目标内容是否为动态内容;
92.如果所述目标内容为动态内容,向第一源站服务器请求所述目标内容,所述第一源站服务器与所述cdn边缘节点之间的连接没有经过cdn上层节点。
93.在一种可能的实施例中,所述判断所述请求所请求的目标内容是否为动态内容,包括:
94.获取上游ip地址,所述上游ip地址为按照预设的动态选路规则确定得到的所述内容请求的路由中位于所述cdn边缘节点下一跳的网络设备的ip地址;
95.判断所述上游ip地址是否为源站服务器的ip地址;
96.如果所述上游ip地址为源站服务器的ip地址,确定所述内容请求所请求的内容为动态内容。
97.在一种可能的实施例中,所述判断所述上游ip地址是否为源站服务器的ip地址,包括:
98.根据所述上游ip地址的标识,判断所述上游ip地址是否为源站服务器的ip地址。
99.在一种可能的实施例中,所述获取上游ip地址,包括:
100.向数据库服务器发送地址请求,以使得所述数据库服务器按照预设的动态选路规
则确定上游ip地址;
101.接收所述数据库服务器反馈的上游ip地址。
102.在一种可能的实施例中,在所述判断所述内容请求所请求的目标内容是否为动态内容之后,所述方法还包括:
103.如果所述目标内容不为动态内容,通过cdn上层节点向第二源站服务器请求所述目标内容。
104.上述cdn边缘节点提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
105.通信接口用于上述电子设备与其他设备之间的通信。
106.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
107.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
108.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一cdn动态加速方法的步骤。
109.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一cdn动态加速方法。
110.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
111.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
112.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
113.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1