发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够优化缓存容量管理、避免发生频繁的缓存替换和带宽浪费、被广泛应用于网络视频点播或直播、网络视频监控等领域的CDN网络中的视频缓存系统及方法。
为了实现上述目的,本发明的CDN网络中的视频缓存系统及方法具有如下构成:
该CDN网络中的视频缓存系统,其主要特点是,所述的系统包括:
CDN管理服务器,用以在push缓存进程中接收内容管理平台发送的缓存优先级高的片源的指令,并控制缓存服务器缓存该优先级高的片源;以及在pull缓存进程中接收数个缓存服务器上报的各片源在一定时间内被访问的次数,并在某一片源的访问次数超过阈值时,控制该缓存服务器缓存此片源;
内容管理平台,用以录入或更新各片源的优先级,以及向所述的CDN管理服务器发送缓存该优先级高的片源的指令;
数个缓存服务器,用以缓存片源以及实时向CDN管理服务器上报各片源在一定时间内被访问的次数;
源服务器,用以存放片源;以及数个用户端,用以从所述的缓存服务器获取片源并播放。
进一步地,所述的系统还包括:
数据库服务器,用以存储所述的CDN管理服务器、内容管理平台以及数个缓存服务器中的信息。
本发明还涉及一种CDN网络中的视频缓存方法,所述的方法包括pull缓存进程和push缓存进程;
所述的pull缓存进程包括以下步骤:
S101:所述的数个缓存服务器实时向CDN管理服务器上报各片源在一定时间内被客户端访问的次数;
S102:所述的CDN管理服务器判断所述的各片源在一定时间内被客户端访问的次数是否大于阈值;
S103:如果某一片源在一定时间内被客户端访问的次数大于阈值,则所述的CDN管理服务器控制与该片源相对应的缓存服务器缓存此片源;
S104:如果各片源在一定时间内被客户端访问的次数均不大于阈值,则继续步骤S101;
所述的push缓存进程包括以下步骤:
S201:所述的内容管理平台录入或更新各片源的优先级;
S202:所述的内容管理平台向所述的CDN管理服务器发送缓存该优先级高的片源的指令;
S203:所述的CDN管理服务器控制缓存服务器缓存该优先级高的片源。
进一步地,所述的pull缓存进程和push缓存进程之后还包括以下步骤:
S2:所述的缓存服务器向所述的CDN管理服务器发送缓存状态信息;
S3:所述的CDN管理服务器更新所述的数据库服务器。
进一步地,所述的系统还包括数据库服务器,所述的步骤S101之后还包括以下步骤:
S1011:所述的CDN管理服务器更新所述的数据库服务器。
进一步地,所述的系统还包括数据库服务器,所述的步骤S201之后还包括以下步骤:
S2011:所述的CDN管理服务器更新所述的数据库服务器。
进一步地,所述的方法还包括缓存服务器中缓存内容替换进程;所述的缓存服务器中缓存内容替换进程包括以下步骤:
S301:所述的缓存服务器从所述的CDN管路服务器获取待缓存的片源的容量;
S302:所述的缓存服务器判断所述的待缓存的片源的容量是否小于该缓存服务器的最低可用容量门限值;
S303:如果所述的待缓存的片源的容量大于或等于该缓存服务器的最低可用容量门限值,则所述的缓存服务器从所述的CDN管路服务器获取按预设规则排序的片源列表;
S304:所述的缓存服务器删除所述的片源列表中排列在最后的列表,然后继续步骤S302;
S305:如果所述的待缓存的片源的容量小于该缓存服务器的最低可用容量门限值,则所述的缓存服务器缓存该待缓存的片源。
更进一步地,所述的系统还包括数据库服务器,所述的步骤S305之后还包括以下步骤:
S306:所述的缓存服务器向所述的CDN管理服务器发送缓存状态信息;
S307:所述的CDN管理服务器更新所述的数据库服务器。
采用了该发明中的CDN网络中的视频缓存系统及方法,与现有技术相比,具有以下有益效果:
1)对近期一定时间内被偶尔访问的冷门片源不进行缓存,从而节省缓存容量和带宽;
2)对入库片源标注或根据需要更新优先级,特别对流媒体的第一个切片文件增加一级优先级,再按照优先级高低次序将片源排入主动推送分发的队列进行push缓存进程的分发,这样减小了用户访问的延迟,改善了用户体验;
3)将片源优先级和近期被访问次数这两个因素纳入到替换片源的策略中,这样也优化了缓存容量管理,避免发生频繁的缓存替换和带宽浪费;
4)本发明能被广泛应用于网络视频点播或直播、网络视频监控等领域。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
首先,本发明提供一种CDN网络中视频缓存的方法和系统,在此系统中,视频缓存方法包括:
1)实时记录每个片源从缓存服务器在近期一段时间内被客户访问的次数,只有当这个访问次数达到一定门限值时,才启动将此片源从中心节点缓存到此边缘节点服务器。这样可以避免边缘节点的缓存容量和缓存带宽的浪费;
2)对入库到CDN分发网络中的片源进行优先级标注,优先级分为10、9、8……1共十级,将热门片源的优先级标注为高优先级,同时将每个片源的第一个切片文件的优先级也增加一级;按照优先级高低次序将片源排入主动推送分发的队列中,主动向各个缓存服务器进行推送分发;通过主动分发高优先级的片源,减小了用户访问的延迟,改善了用户体验;
3)当缓存服务器容量已经用满的情况下,将片源优先级和近期被访问次数这两个因素纳入到替换片源的策略中,即优先级低且近期不常被访问的片源将会被替换。这样优化了缓存容量管理,避免发生频繁的缓存替换,也节省了缓存带宽。
请参阅图1所示,为本发明的CDN网络中的视频缓存系统及方法,其主要包括内容管理平台、CDN管理服务器、数据库服务器、源服务器和缓存服务器等基本功能模块。
图1中内容管理平台101,主要负责将视频源录入到CDN源服务器,或从CDN源服务器删除视频源。在本发明中此内容管理平台101还具有标注或更新视频源的优先级功能,还具有向CDN管理服务器主动发送分发消息的功能,此消息即为将高优先级的片源主动推送分发到CDN缓存服务器的消息。
图1中数据库服务器102,主要保存CDN网络管理信息,比如各服务器运行状态、实时负载信息等。在本发明中此数据库服务器102还实时记录各缓存服务器中各个片源在近一段时间内被终端客户访问的次数,同时也保存由内容管理平台实时下发的片源优先级信息。
图1中CDN管理服务器103,其是本系统的核心模块,CDN中无论是主动推送分发(即push缓存进程)还是被动智能分发(即pull缓存进程)都是由此模块管理和控制的。在push缓存进程中,CDN管理服务器接收内容管理平台发送的推送消息,控制缓存服务器进行相应片源的缓存。在pull缓存进程中,CDN管理服务器实时接收各缓存服务器上报的片源近段时间内被访问的次数,当某个片源的近期访问次数达到一定的门限值时,控制此缓存服务器进行此片源的缓存。另外,CDN管理服务器也实时接收各缓存服务器的状态消息,并保存于数据库服务器中,其中在本发明中还包括保存状态:各缓存服务器的缓存可用容量信息,当可用容量小于门限值或小于需要缓存片源的大小时,根据缓存服务器中片源的近期被访问次数和片源的优先级进行缓存替换,近期访问次数少的且优先级低的片源会被首先替换掉。
图1中源服务器104,用于存放源视频,同时也可以作为流媒体服务器为客户端提供流媒体访问服务。
图1中缓存服务器105,用于缓存源视频服务器中的视频,同时也作为流媒体服务器,为客户端提供就近的流媒体服务;本发明中,此缓存服务器105还包括定时向CDN管理服务器上报缓存服务器中每个片源近期被访问的次数等信息。
图1中客户端106,是指视频播放客户端。
下面结合示意图2和图3详细介绍一下本发明中CDN网络的视频缓存方法。
如图2所示,过程201和过程206是并行的,分别表示了push缓存进程和pull缓存进程的开始过程。
步骤201由内容管理平台实现,完成片源优先级的录入或更新,将片源的优先级分为10级,优先级由高到低依次为10,9,8,…,1,例如对最热门的片源标注为9级,对每个片源的第一个分片文件的优先级相应加1,这样最热门片源的第一个切片文件的优先级就为最高级10级;然后进入下一个步骤202和步骤205。
步骤202也是由内容管理平台实现,将片源按照优先级由高到低排列,针对高优先级的片源,内容管理平台向CDN管理服务器发送push缓存进程的分发消息,优先级越高的片源,其分发消息在消息队列中就越靠前。
步骤205由CDN管理服务器调用数据库服务器更新数据库中的记录,这里就是更新片源优先级记录。
步骤203由CDN管理服务器控制缓存服务器实现片源的缓存,这里就是实现push缓存进程。
步骤204,缓存服务器将缓存完成后的状态上报给CDN管理服务器。
步骤205,CDN管理服务器调用数据库服务器更新数据库中的记录,这里更新的记录包括片源在缓存服务器中是否缓存成功的记录以及缓存容量更新的记录。
步骤206,由缓存服务器定时向CDN管理服务器上报各片源在近期一段时间内(如一个月内)被客户访问的次数,然后进入步骤205和步骤207。
步骤205,CDN管理服务器调用数据库服务器更新数据库中的记录,这里更新的记录是指该缓存服务器中各片源在近段时间内被客户访问的次数。
步骤207,CDN管理服务器判断各片源近段时间内被客户访问的次数是否大于设定的门限值,如果大于门限值则进入步骤208,否则不进行处理。
步骤208,CDN管理服务器向该缓存服务器下发pull缓存进程的分发指令,然后进入步骤203。
步骤203,CDN管理服务器控制缓存服务器完成pull缓存进程的视频缓存,然后进入和push缓存进程相同的步骤204和步骤205。
如图3所示为CDN网络中,缓存服务器进行缓存替换进程的流程示意图。
步骤301,缓存服务器在进行缓存前,先要向CDN管理服务器查询缓存服务器的当前缓存容量和最低可用容量的门限值。
步骤302,缓存服务器判断当前可用容量是否小于门限值,如果否,则进入步骤303,是则进入步骤305。
步骤303,缓存服务器进行正常的视频缓存过程,缓存完成后进入步骤304。
步骤304,缓存服务器向CDN管理服务器上报片源更新状态,然后CDN管理服务器更新数据库中片源在缓存服务器的状态记录。
步骤305,缓存服务器从CDN管理服务器中获取该缓存服务器中按照近期访问次数和优先级排序的片源列表信息,然后进入306步骤。
步骤306,缓存服务器删除访问次数最少且优先级最低的片源,然后进入步骤307。
步骤307,缓存服务器再一次判断当前可用容量是否小于门限值,如果否,则进入步骤303,是则循环进入步骤306。
为了使本领域技术人员更好地理解本发明的CDN网络中的视频缓存系统及方法,请参阅图1至图3所示,本发明的CDN网络中的视频缓存系统及方法的一具体实施例为:
图2为本发明的CDN网络中的视频缓存方法的步骤流程图。
步骤201在内容管理平台实现,通过管理界面输入/更新片源的优先级,例如将片源的优先级分为10级,优先级由高到低依次为10,9,8,…,1,对最热门的片源标注为9级,对每个流媒体片源的第一个分片文件的优先级相应+1,这样最热门片源的第一个切片文件的优先级就为最高级10级。然后进入下一个步骤202和步骤205。
步骤202也是在内容管理平台实现,将片源按照优先级由高到低排序,针对高优先级的片源,内容管理平台向CDN管理服务器发送push缓存进程的分发消息,优先级越高的片源,其分发消息在消息队列中就越靠前,例如通过push缓存进程只发送优先级为10级的片源。
步骤205由CDN管理服务器调用数据库服务器更新数据库中的记录,这里就是更新片源优先级记录。
步骤203由CDN管理服务器控制缓存服务器实现片源的缓存,这里就是实现push缓存进程,比如只缓存优先级为10级的片源,这样缓存完成后,客户访问这些片源时即可就近访问,从而减小响应延迟。
步骤204,缓存服务器将缓存完成后的状态上报给CDN管理服务器。
步骤205,CDN管理服务器调用数据库服务器更新数据库中的记录,这里更新的记录包括片源在缓存服务器中是否缓存成功的记录以及缓存容量更新的记录。
步骤206,由缓存服务器定时向CDN管理服务器上报各片源在近期一个月内被客户访问的次数,然后进入步骤205和步骤207。
步骤205,CDN管理服务器调用数据库服务器更新数据库中的记录,这里更新的记录是指该缓存服务器中各片源在近一个月内被客户访问的次数。
步骤207,CDN管理服务器判断各片源近一个月内被客户访问的次数是否大于设定的门限值N,例如N取100,如果大于100则进入步骤208,否则不进行处理。
步骤208,CDN管理服务器向该缓存服务器下发pull缓存进程的分发指令,然后进入203步骤。
步骤203,CDN管理服务器控制缓存服务器完成pull缓存进程的视频缓存,然后进入和push缓存进程相同的步骤204和步骤205。
图3为本发明的CDN网络中缓存服务器中缓存内容替换进程的步骤流程图。
步骤301,缓存服务器在进行缓存前,先要向CDN管理服务器查询缓存服务器的当前缓存容量和最低可用容量的门限值,例如最低可用容量的门限值取为50G Bytes。
步骤302,缓存服务器判断当前可用容量是否小于50G Bytes,如果否,则进入步骤303,是则进入步骤305。
步骤303,缓存服务器进行正常的视频缓存过程,缓存完成后进入步骤304。
步骤304,缓存服务器向CDN管理服务器上报片源更新状态,然后CDN管理服务器更新数据库中片源在缓存服务器的状态记录。
步骤305,缓存服务器从CDN管理服务器中获取该缓存服务器中按照近一个月内访问次数和优先级排序的片源列表信息,然后进入306步骤。
步骤306,缓存服务器删除访问次数最少且优先级最低的片源,然后进入步骤307。
步骤307,缓存服务器再一次判断当前可用容量是否小于50G Bytes,如果否,则进入步骤303,是则循环进入步骤306。
采用了该发明中的CDN网络中的视频缓存系统及方法,与现有技术相比,具有以下有益效果:
1)对近期一定时间内被偶尔访问的冷门片源不进行缓存,从而节省缓存容量和带宽;
2)对入库片源标注或根据需要更新优先级,特别对流媒体的第一个切片文件增加一级优先级,再按照优先级高低次序将片源排入主动推送分发的队列进行push缓存进程的分发,这样减小了用户访问的延迟,改善了用户体验;
3)将片源优先级和近期被访问次数这两个因素纳入到替换片源的策略中,这样也优化了缓存容量管理,避免发生频繁的缓存替换和带宽浪费;
4)本发明能被广泛应用于网络视频点播或直播、网络视频监控等领域。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。