一种高效的CDN刷新分片的方法技术

技术编号:30961131 阅读:59 留言:0更新日期:2021-11-25 20:25
本发明专利技术公开了一种高效的CDN刷新分片的方法,包括:内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;根据分片数计算每片资源的大小,得到分片大小sliceSize;对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值;根据每片的原始URL、哈希值和序号ID作为key值,分片资源作为value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新。本发明专利技术能够根据资源大小及服务器的容量自动对资源进行分片,减少操作人员的负担,更加合理的利用资源,同时,分片刷新时也只需刷一次,大大提升刷新的效率。大大提升刷新的效率。大大提升刷新的效率。

【技术实现步骤摘要】
一种高效的CDN刷新分片的方法


[0001]本专利技术涉及CDN 刷新分片领域,具体涉及一种高效的 CDN 刷新分片的方法。

技术介绍

[0002]CDN (Content Delivery Network),即内容分发网络,旨在解决互联网数据传输瓶颈,通过在各个边缘节点缓存资源数据,用户可在就近的边缘节点缓存中直接获取资源,避免去往源站,减少用户在网络传输过程中耗费的时间。
[0003]CDN在缓存资源数据时,会对过大的资源数据进行分片。当缓存资源需要刷新时,目前的开源服务器会对缓存资源的每一个分片进行刷新。该方案存在如下缺陷:1)刷新的总耗时长,进行资源分片刷新时,需要等到每一个分片都完成刷新后,该资源才能完成刷新;2)分片刷新造成“请求风暴”,增大系统压力,在进行批量刷新时如果大量的资源需要分片刷新,这样刷新的总请求量会非常庞大形成“请求风暴”,增大对系统的压力。

技术实现思路

[0004]本专利技术的第一个目的是提供一种高效的 CDN 刷新分片的方法,能够根据资源大小及服务器的容量自动对资源进行分片,减少操作人员的负担,更加合理的利用资源,同时,分片刷新时也只需刷一次,大大提升刷新的效率。
[0005]一种高效的 CDN 刷新分片的方法,包括以下步骤:1)内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;2)根据分片数计算每片资源的大小,得到分片大小sliceSize;3)根据分片数sliceNum和分片大小sliceSize对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值(etag);4)根据分片后的每片的原始 URL、哈希值和根据分片数sliceNum对应的序号ID作为 key值,分片资源作为 value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新,并以请求头中携带的 maxAge作为该分片缓存的生命周期。
[0006]步骤1)中,对资源数据进行分片,得到分片大小sliceSize,具体包括:1.1)使用分片计算公式对资源数据进行计算,计算分片数量的公式为number=max(dataSize/max(limitSize, defaultLimitSize), 1),其中,number为分片数量,dataSize表示资源数据的大小,limiteSize表示要求的分片大小,defaultLimitSize表示默认的分片大小,defaultLimitSize值为1~500 MB,默认情况下50 MB;1.2)当分片数量number结果小于等于 1 时,表示该资源很小,不需要分片;1.3)当分片数量number结果大于 1 时,取整后得到分片数sliceNum:1.3.1)如果number为整数,则number即为该资源需要的分片数sliceNum;1.3.2)如果number为小数时,则number取整后再加 1 为该资源需要的分片数sliceNum。
[0007]步骤2)中,根据分片数计算每片资源的大小,得到分片大小sliceSize,具体包括:2.1)当分片计算公式的运算结果小于等于 1 时,表示该资源很小,不需要分片,直接根据原始 URL替换缓存系统中对应的资源;2.2)当分片计算公式的运算结果大于 1 时,按照计算出的分片数作为资源的分片数,程序使用区间 [0,sliceNum)内的整数作为每个分片的 ID,计算每个分片的大小,得到分片大小sliceSize。
[0008]步骤2.2)中,计算每个分片的大小,具体包括:每个分片的大小根据公式的运算结果分为 2 种情况:2.2.1)如果分片计算公式的运算为整数则每片大小一致均等于分片大小sliceSize,分片大小sliceSize=资源数据dataSize /分片数sliceNum;2.2.2)如果分片计算公式的运算为小数时,最后一分片的大小等于 dataSize
ꢀ–ꢀ
round(分片数量number)*sliceSize,其余分片的大小为 sliceSize;步骤2.2.2)中,最后一分片的大小与其余分片的大小sliceSize之和等于资源数据dataSize,可以确定sliceSize。
[0009]与现有技术相比,本专利技术具有如下优点。
[0010](1)本专利技术提供的分片计算公式能够自主判断是否需要对资源进行分片,以及支持分片大小及分片数量的可配置化,避免了过大分片缓存效果不佳,过小分片使得服务器内存碎片化整体资源率低,提升了缓存服务器的整体性能。
[0011](2)本专利技术提供的分片刷新方法只需要请求源站一次,并且只在缓存资源发生变化时才重新缓存资源,从而降低了刷新的平均耗时,提升了刷新系统的吞吐量。
[0012](3)本专利技术提供的分片计算公式能够自主判断是否需要对资源进行分片,以及支持分片大小及分片数量的可配置化,避免了过大分片缓存效果不佳,过小分片使得服务器内存碎片化整体资源率低,提升了缓存服务器的整体性能。
[0013](4)本专利技术提供的分片刷新方法只需要请求源站一次,并且只在缓存资源发生变化时才重新缓存资源,从而降低了刷新的平均耗时,提升了刷新系统的吞吐量。
附图说明
[0014]图1为分片刷新预热的整体架构图。
[0015]图2为根据分片计算公式计算分片数的逻辑示意图。
[0016]图3为根据分片刷新结果存入缓存系统的流程图。
具体实施方式
[0017]本专利技术高效的 CDN 刷新分片的方法,包括使用分片计算公式对分片进行计算和CDN分片缓存的刷新。
[0018]使用分片计算公式对分片进行计算:计算分片数量的公式为number=max(dataSize / max(limitSize, defaultLimitSize), 1),其中:dataSize表示资源的体积;limiteSize表示要求的分片大小;defaultLimitSize表示默认的分片大小,默认情况defaultLimitSize值为 50 MB。
[0019]该公式的计算结果有以下几种情况:
当公式的运算结果小于等于 1 时,表示该资源很小,不需要分片;当公式的运算结果大于 1 时:a.如果number为整数,则number即为该资源需要的分片数sliceNum;b.如果number为小数时,则number取整后再加 1 为该资源需要的分片数sliceNum。
[0020]一种CDN分片缓存的刷新方法,分片刷新时也只需刷一次,大大提升刷新的效率。
[0021]在进行资源刷新时,刷新后的资源按照上述计算分片数量的公式重新计算。
[0022]当公式的运算结果等于 1 时,表示该资源很小,不需要分片,直接根据原始 URL替换缓存系统中对应的资源即可。
[0023]当公式的运算结果大于 1 时,按照计算出的分片数作为资源的分片数,程序使用区间 [0,sliceNum)内的整数作为每个分片的 ID,每个分片的大小根据公式的运本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效的 CDN 刷新分片的方法,其特征在于,包括以下步骤:1)内容分发网络在缓存资源数据时,对资源数据进行分片,得到分片数sliceNum;2)根据分片数计算每片资源的大小,得到分片大小sliceSize;3)根据分片数sliceNum和分片大小sliceSize对资源数据进行分片,之后对分片后的每片对应的资源内容生成对应的哈希值作为该分片的哈希值;4)根据分片后的每片的原始 URL、哈希值和根据分片数sliceNum对应的序号ID作为 key值,分片资源作为 value,更新缓存,把分片缓存存储到缓存存储系统中进行缓存,完成刷新,并以请求头中携带的 maxAge作为该分片缓存的生命周期。2.根据权利要求1所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1)中,对资源数据进行分片,得到分片大小sliceSize,具体包括:1.1)使用分片计算公式对资源数据进行计算,分片计算公式为number=max(dataSize/max(limitSize, defaultLimitSize), 1);其中,number为分片数量,dataSize表示资源数据的大小,limiteSize表示要求的分片大小,defaultLimitSize表示默认的分片大小;1.2)当分片数量number结果小于等于 1 时,不需要分片;1.3)当分片数量number结果大于 1 时,取整后得到分片数sliceNum。3.根据权利要求2所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1.1)中,defaultLimitSize值为1~500 MB。4.根据权利要求2所述的高效的 CDN 刷新分片的方法,其特征在于,步骤1.3)中,当分片数量number结果大于...

【专利技术属性】
技术研发人员:张召
申请(专利权)人:杭州又拍云科技有限公司
类型:发明
国别省市:

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

1