一种面向大文件分发场景的分片缓存及重组方法技术

技术编号:20049891 阅读:74 留言:0更新日期:2019-01-09 05:49
本发明专利技术涉及一种面向大文件分发场景的分片缓存及重组方法,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。与现有技术相比,本发明专利技术实现了在节点收到来自客户端对相应文件的请求时,从缓存的片段中选择客户端请求的字节范围并进行重组返回等优点。

【技术实现步骤摘要】
一种面向大文件分发场景的分片缓存及重组方法
本专利技术涉及一种CDN(ContentDeliveryNetwork内容分发网络)领域,尤其是涉及一种面向大文件分发场景的分片缓存及重组方法。
技术介绍
在提供互联网服务的网站中大多已经使用了CDN进行网站内容的分发加速传输,以提升用户的访问体验,降低源站的负载。CDN是在传统的网络架构中,在服务器与客户端之间增加了一系列部署在不同区域的缓存节点,从而通过缓存是同区域用户快速获取内容。在目前针对视频、软件下载等大文件的请求,客户端通常会有range请求和非range请求,CDN服务器也会根据客户端的请求类型向源站发起同样的类型的请求,但是针对range请求,CDN节点不会将请求下来的分片文件进行缓存的。基于上述场景,在大文件分发过程中会有以下几点不足:(1)对于客户端的range请求,CDN直接转发该range请求进行回源,因range的不确定性通常节点不会对应的片段进行缓存,从而每个来自客户端的range请求都要回源获取,会造成大量的回源,回源带宽浪费;(2)即便对(1)中描述的片段进行缓存,CDN节点也无法对其再次利用,属于无意义缓存,会造成存储空间的浪费;(3)大文件完整缓存回源时间长,分发性能低,必须要做预缓存,否则分发成功率很低。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种面向大文件分发场景的分片缓存及重组方法。本专利技术的目的可以通过以下技术方案来实现:一种面向大文件分发场景的分片缓存及重组方法,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。优选地,所述的方法包括:CDN节点收到来自客户端的文件访问请求,包括情形一:客户端请求整个文件,以及情形二:客户端进行range请求,请求文件某个片段。优选地,所述的情形一:客户端请求整个文件,具体过程如下:(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源;(1.3)如果当前节点缓存了部分片段,则CDN节点会首先向源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。优选地,所述的节点会进行回源具体为:首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段;之后CDN节点会向源站发起range请求,并按照请求下来的片段进行缓存,同时将已经缓存的片段进行重组,返回给客户端。优选地,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程如下:(2.1)如果请求的片段字节范围全部包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端;(2.2)如果请求的片段字节范围全部不包含在当前节点已经缓存的片段中,则当前节点会按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围的片段,将回源获取的片段进行重组,然后将重组的片段返回给客户端。优选地,所述的情形二:客户端进行range请求,请求文件某个片段,具体过程还包括:(2.3)如果请求的片段字节范围部分包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围但未被当前节点缓存的片段进行缓存,节点将从缓存的片段中截取截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端。与现有技术相比,本专利技术具有以下优点:由于在CDN节点添加了针对大文件分发的分片缓存和重组机制,节点可以根据该机制进行range回源,并缓存获取的片段,因该机制中包含对片段的标记,可以被节点识别和再次利用。从而实现了在节点收到来自客户端对相应文件的请求时,从缓存的片段中选择客户端请求的字节范围并进行重组返回。解决了以下问题:(1)减少了回源次数,节省了回源带宽;(2)不进行无意义缓存,节省了存储空间;(3)对于没能进行预缓存的大文件,可在回源同时向客户端转发,提升了大文件分发效率。附图说明图1为本专利技术客户端进行range请求并请求文件某个片段的流程图;图2为本专利技术客户端请求整个文件的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。本专利技术提供了一种面向大文件分发场景的分片缓存及重组机制。在CDN内容分发网络的各个节点中进行部署实现。详细实现方法如下:CDN节点收到来自客户端的文件访问请求:(1)情形一:客户端请求整个文件,如图2所示;(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源。首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段。之后CDN节点会向源站发起range请求,并按照请求下来的片段进行缓存。同时将已经缓存的片段进行重组,返回给客户端。(1.3)如果当前节点缓存了部分片段,则CDN节点会首先想源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。(2)情形二:客户端进行range请求,请求文件某个片段,如图1所示:(2.1)如果请求的片段字节范围全部包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端;(2.2)如果请求的片段字节范围全部不包含在当前节点已经缓存的片段中,则当前节点会按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围的片段,将回源获取的片段进行重组,然后将重组的片段返回给客户端;(2.3)如果请求的片段字节范围部分包含在当前节点已经缓存的片段中,则当前节点会从已缓存片段中截取客户端请求的片段字节范围,按照分片回源的配置去向源站发起range请求,来请求包含客户端请求的片段字节范围但未被当前节点缓存的片段进行缓存。节点将从缓存的片段中截取截取客户端请求的片段字节范围,并进行重组,然后将重组的片段返回给客户端。具体实施例:某文件大小100MB,客户端向CDN节点请求该文件。(1)可能的请求类型一:range请求(1.1)客户端发起的range请求,http状态码为206片段范围是[3.6M,5.4M],即该请求要获取文件的第3.6M个字节到第5.4M个字节。(1.2)CDN某节点收到该请求,首先判断[3.6M,5.4M]是否包含在已经缓存的片段中。(1.3)可能的情况一:[3.6M,5.4M]部包含在已经缓存的片段中,则当前节点按照配置的range回源规则进行回源。回本文档来自技高网...

【技术保护点】
1.一种面向大文件分发场景的分片缓存及重组方法,其特征在于,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。

【技术特征摘要】
1.一种面向大文件分发场景的分片缓存及重组方法,其特征在于,该方法在CDN内容分发网络的各个节点中进行部署实现,用于对网站的页面、图片、视频文件、下载大文件通过缓存进行分发加速服务,旨在让终端用户能够更快速的获取到要访问的内容或文件。2.根据权利要求1所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的方法包括:CDN节点收到来自客户端的文件访问请求,包括情形一:客户端请求整个文件,以及情形二:客户端进行range请求,请求文件某个片段。3.根据权利要求2所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的情形一:客户端请求整个文件,具体过程如下:(1.1)如果当前节点已经缓存被请求文件的所有分片,则直接将这些文件分片进行重组,并返回给客户端;(1.2)如果当前节点没有对该文件进行缓存,则该节点会进行回源;(1.3)如果当前节点缓存了部分片段,则CDN节点会首先向源站以range请求的方式请求该文件未被缓存的片段,并进行片段重组,返回给客户端。4.根据权利要求3所述的一种面向大文件分发场景的分片缓存及重组方法,其特征在于,所述的节点会进行回源具体为:首先节点向源站发起一个获取文件大小的请求,得到文件大小之后,当前节点会按照分片回源的配置确定将源文件分成多少个片段;之后CDN节点会向...

【专利技术属性】
技术研发人员:郭强李强黄英才
申请(专利权)人:云之端网络江苏股份有限公司
类型:发明
国别省市:江苏,32

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1