发明内容
针对现有技术存在的问题,本发明实施例提供一种内容分发网络调度方法及装置。
第一方面,本发明实施例提供一种内容分发网络调度方法,包括:
S1、统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;
S2、获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;
S3、根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商调度给所述待下载视频资源。
第二方面,本发明实施例提供一种内容分发网络调度装置,包括:
统计模块,用于统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;
计算模块,用于获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;
调度模块,用于根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商调度给所述待下载视频资源。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。
本发明实施例提供的一种内容分发网络调度方法及装置,通过统计多家CDN服务商在预设历史时间段对的CDN数据,根据CDN数据、待下载视频资源和用户需求计算对应的CDN服务质量,根据各CDN服务质量选择目标CDN服务商调度给待下载视频资源。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供一种内容分发网络调度方法流程示意图,如图1所示,所述方法,包括:
S1、统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;
具体的,调度装置首先获取多家CDN服务商在预设历史时间段内对应的CDN数据,其中,这多家CDN服务商是跟用户具有合作关系的,即一个视频网站,同时跟多家CDN服务商合作,可以同时使用多家CDN服务商的服务。预设历史时间段可以是距当前时间最近的七天,或者更久,本发明实施例对此不作具体限定。且CDN数据是用户使用CDN服务商提供的服务所产生的数据,可以包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合,其中加载首帧平均时长是在加载视频过程中,其视频首帧所需加载的平均时长,单位为秒;卡顿平均时长的取值单位也为秒;网络稳定性为网络请求成功率的百分比;价格为每家CDN服务商的价格,单位为兆/元;自定义权重为上述各个参数所占的权重,上传资源为CDN服务商都上传了哪些视频资源。
S2、获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;
具体的,获取待下载视频资源,为待下载视频资源分配对应的CDN服务,分别计算每一家CDN服务商对应的CDN服务质量,在计算过程中,根据待下载视频资源和被计算的CDN服务商对应的上传资源确定是否使用该CDN服务商上传过该待下载视频资源,其确定过程为,如果统计的上传资源中包括待下载视频资源,则说明是通过该CDN服务商上传的,否则不是通过该CND服务商上传。用户需求是在为待下载视频资源分配CDN服务商时,是否使用该被计算的CDN服务商。因此根据加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重、是否是该CDN服务商上传的待下载视频资源以及是否使用该CDN服务商来下载该待下载视频资源计算CDN服务质量。
S3、根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源。
具体的,在计算出每一家CDN服务商对应的CDN服务质量后,根据CDN服务质量从多家CDN服务商中选择一个作为目标CDN服务商,待下载视频资源通过目标CDN服务商来进行对应的视频资源的下载。应当说明的是,待下载视频资源可以有多个,每一个待下载视频资源都经过上述步骤来获得对应的目标CDN服务商,从而实现了CDN的调度。
本发明实施例通过统计多家CDN服务商在预设历史时间段对的CDN数据,根据CDN数据、待下载视频资源和用户需求计算对应的CDN服务质量,根据各CDN服务质量选择目标CDN服务商调度给待下载视频资源。
在上述实施例的基础上,所述根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源,包括:
根据多家CDN服务商对应的CDN服务质量构建数组,所述数组中包括各CDN服务商对应的服务商编号;
将当前时间作为随机函数的种子,根据所述随机函数从数组中获取一个目标服务商编号;
将所述目标服务商编号对应的目标CDN服务商调度给所述待下载视频资源。
具体的,根据多家CDN服务商对应的CDN服务质量构建数组,数组中包括各家CDN服务商对应的服务商编号,CDN服务质量决定了这个数组中CDN服务商对应的服务商编号个数。将当前时间作为随机函数的种子,根据随机函数从构建的数组中随机产生一个数,由于数组中包括的都是服务商编号,因此产生的这个数就是目标服务商编号,根据目标服务商编号可以获得到目标CDN服务商,将该目标CDN服务商调度给待下载视频资源,完成CDN的调度。应当说明的是,每一个待下载视频资源都会有一个对应的数组,根据数组随机生成一个目标服务商编号,因此,可以同时使用多家CDN服务商为多个待下载视频服务。
本发明实施例通过CDN服务质量构建数组,利用随机函数从数组中随机产生一个目标服务商编号,并将目标服务商编号对应的目标CDN服务商调度给待下载视频资源,不受CDN商家的限制,根据自己的需求,选择CDN商家,提高视频资源下载的稳定性。
在上述实施例的基础上,所述根据多家CDN服务商对应的CDN服务质量构建数组,包括:
将各CDN服务商对应的CDN服务质量乘以预设数值并取整数得到处理后CDN服务质量,根据所述处理后CDN服务质量确定各CDN服务商对应的服务商编号个数;
根据各CDN服务商对应的服务商编号个数以及服务商编号构建所述数组。
具体的,当计算得到各个CDN服务商对应的CDN服务质量后,根据预设规则获取该CDN服务质量对应的处理后CDN服务质量,该预设规则为,将CDN服务质量乘以预设数值并取整数后得到处理后CDN服务质量,根据处理后CDN服务质量确定各CDN服务商对应的服务商编号个数,将对应个数的服务商编号放入数组中,可以是随机放入到数组中。每一个CDN服务商将对应个数的服务商编号都放入到数组中才构建完成。例如:有A、B两家CDN服务商,CDN服务商A的服务商编号为1,,CDN服务商B的服务商编号为2,CDN服务商A对应的CDN服务质量为0.2146,CDN服务商B对应的CDN服务质量为0.31111,将两个CDN服务商的CDN服务质量分别乘以1000,并四舍五入取整,得到CDN服务商A的处理后CDN服务质量为215,CDN服务商B的处理后CDN服务质量为311,因此这个数组,215个1和311个2组成。
本发明实施例通过CDN服务质量构建数组,利用随机函数从数组中随机产生一个目标服务商编号,并将目标服务商编号对应的目标CDN服务商调度给待下载视频资源,不受CDN商家的限制,根据自己的需求,选择CDN商家,提高视频资源下载的稳定性。
在上述实施例的基础上,所述根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量,包括:
根据公式计算获得每一CDN服务商对应的CDN服务质量;
其中,W1、W2、W3、W4和W5为自定义权重值,Sn为第n个CDN服务商对应的加载首帧平均时长的倒数;Ln为第n个CDN服务商对应的卡顿平均时长的倒数;Nn为第n个CDN服务商对应的网络稳定性;Pn为第n个CDN服务商对应的价格,Un为是否使用第n个CDN服务商上传所述待下载视频资源,且Un为0或1;Gn为用户是否选择使用第n个CDN服务商,且Gn为0或1;n为正整数。
具体的,可以通过下面的公式计算获得各个CDN服务商对应的CDN服务质量:
其中,W1为加载首帧平均时长对应的自定义权重值,Sn为第n个CDN服务商在预设历史时间段内视频的加载首帧平均时长的倒数,W2为卡顿平均时长对应的自定义权重值,Ln为第n个CDN服务商在预设历史时间段内对应的卡顿平均时长的倒数,W3为网络稳定性的自定义权重值,Nn为第n个CDN服务商在预设历史时间段内对应的网络稳定性,W4为价格对应的自定义权重值,Pn为第n个CDN服务商在预设历史时间段内对应的价格,W5为是否使用上传所述待下载视频资源对应的权重值,Un为是否使用第n个CDN服务商上传待下载视频资源,如果待下载视频资源是该CDN服务商上传的,那么该CDN服务商的Un为1,否则为0,Gn为用户是否选择使用第n个CDN服务商,如果用户选择,那么该第n个CDN服务商的Gn值为1,否则为0。应当说明的是,W1+W2+W3+W4+W5=1,一共有n个CDN服务商,n的取值范围为正整数。
本发明实施例通过根据各CDN服务商的加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重、上传资源、待下载视频资源和用户需求计算对应的CDN服务质量,根据CDN服务质量来构成数组,并根据随机函数从数组中随机选择一个CDN服务商作为目标CDN服务商,实现了灵活调度CDN服务商。
在上述实施例的基础上,所述方法,还包括:
根据预设周期重复执行S1-S3。
具体的,根据预设周期重复执行S1-S3,可以设定预设周期为一个星期或一个月更新一次,对比效果,不断的优化,不适用或只使用某家CDN服务,可以通过Gn参数进行设置,针对某个视频,算法变更后的第一次请求,计算出使用哪家cdn服务,然后记录下改cdn,算法不变更改的情况下,使用该cdn不变。cdn回源问题,可以通过上传的源站进行统一映射。
本发明实施例提供的一种内容分发网络调度方法及装置,通过统计多家CDN服务商在预设历史时间段对的CDN数据,根据CDN数据、待下载视频资源和用户需求计算对应的CDN服务质量,根据各CDN服务质量选择目标CDN服务商调度给待下载视频资源。
图2为本发明实施例提供的一种内容分发网络调度装置结构示意图,如图2所示,所述装置,包括:统计模块201、计算模块202和调度模块203,其中:
统计模块201用于统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;计算模块202用于获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;调度模块203用于根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源。
具体的,统计模块201首先获取多家CDN服务商在预设历史时间段内对应的CDN数据,预设历史时间段可以是距当前时间最近的七天,或者更久,本发明实施例对此不作具体限定。且CDN数据是用户使用CDN服务商提供的服务所产生的数据,可以包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合,其中加载首帧平均时长是在加载视频过程中,其视频首帧所需加载的平均时长,单位为秒;卡顿平均时长的取值单位也为秒;网络稳定性为网络请求成功率的百分比;价格为每家CDN服务商的价格,单位为兆/元;自定义权重为上述各个参数所占的权重,上传资源为CDN服务商都上传了哪些视频资源。计算模块202获取待下载视频资源,为待下载视频资源分配对应的CDN服务,分别计算每一家CDN服务商对应的CDN服务质量,在计算过程中,根据待下载视频资源和被计算的CDN服务商对应的上传资源确定是否使用该CDN服务商上传过该待下载视频资源,其确定过程为,如果统计的上传资源中包括待下载视频资源,则说明是通过该CDN服务商上传的,否则不是通过该CND服务商上传。用户需求是在为待下载视频资源分配CDN服务商时,是否使用该被计算的CDN服务商。因此计算模块202根据加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重、是否是该CDN服务商上传的待下载视频资源以及是否使用该CDN服务商来下载该待下载视频资源计算CDN服务质量。在计算出每一家CDN服务商对应的CDN服务质量后,调度模块203根据CDN服务质量从多家CDN服务商中选择一个作为目标CDN服务商,待下载视频资源通过目标CDN服务商来进行对应的视频资源的下载。应当说明的是,待下载视频资源可以有多个,每一个待下载视频资源都经过上述步骤来获得对应的目标CDN服务商,从而实现了CDN的调度。
本发明提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过统计多家CDN服务商在预设历史时间段对的CDN数据,根据CDN数据、待下载视频资源和用户需求计算对应的CDN服务质量,根据各CDN服务质量选择目标CDN服务商调度给待下载视频资源。
在上述实施例的基础上,所述调度模块,具体用于:
根据多家CDN服务商对应的CDN服务质量构建数组,所述数组中包括各CDN服务商对应的服务商编号;
将当前时间作为随机函数的种子,根据所述随机函数从数组中获取一个目标服务商编号;
将所述目标服务商编号对应的目标CDN服务商调度给所述待下载视频资源。
具体的,调度模块根据多家CDN服务商对应的CDN服务质量构建数组,数组中包括各家CDN服务商对应的服务商编号,CDN服务质量决定了这个数组中CDN服务商对应的服务商编号个数。将当前时间作为随机函数的种子,根据随机函数从构建的数组中随机产生一个数,由于数组中包括的都是服务商编号,因此产生的这个数就是目标服务商编号,根据目标服务商编号可以获得到目标CDN服务商,将该目标CDN服务商调度给待下载视频资源,完成CDN的调度。应当说明的是,每一个待下载视频资源都会有一个对应的数组,根据数组随机生成一个目标服务商编号,因此,可以同时使用多家CDN服务商为多个待下载视频服务。
本发明实施例通过CDN服务质量构建数组,利用随机函数从数组中随机产生一个目标服务商编号,并将目标服务商编号对应的目标CDN服务商调度给待下载视频资源,不受CDN商家的限制,根据自己的需求,选择CDN商家,提高视频资源下载的稳定性。
在上述实施例的基础上,所述计算模块,具体用于:
根据公式计算获得每一CDN服务商对应的CDN服务质量;
其中,W1、W2、W3、W4和W5为自定义权重值,Sn为第n个CDN服务商对应的加载首帧平均时长的倒数;Ln为第n个CDN服务商对应的卡顿平均时长的倒数;Nn为第n个CDN服务商对应的网络稳定性;Pn为第n个CDN服务商对应的价格,Un为是否使用第n个CDN服务商上传所述待下载视频资源,且Un为0或1;Gn为用户是否选择使用第n个CDN服务商,且Gn为0或1;n为正整数。
具体的,可以通过下面的公式计算获得各个CDN服务商对应的CDN服务质量:
其中,上述公式中的各个参数的描述与上述方法实施例中一致,此处不再赘述。
本发明提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过统计多家CDN服务商在预设历史时间段对的CDN数据,根据CDN数据、待下载视频资源和用户需求计算对应的CDN服务质量,根据各CDN服务质量选择目标CDN服务商调度给待下载视频资源。
图3为本发明实施例提供的电子设备实体结构示意图,如图3所示,所述电子设备,包括:处理器(processor)301、存储器(memory)302和总线303;其中,
所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:S1、统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;S2、获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;S3、根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:S1、统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;S2、获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;S3、根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S1、统计多家CDN服务商的预设历史时间段内对应的CDN数据,所述CDN数据包括:加载首帧平均时长、卡顿平均时长、网络稳定性、价格、自定义权重和上传资源中的任意一项或其组合;S2、获取待下载视频资源,根据各CDN服务商的所述加载首帧平均时长、所述卡顿平均时长、所述网络稳定性、所述价格、所述自定义权重、所述上传资源、所述待下载视频资源和用户需求计算对应的CDN服务质量;S3、根据各CDN服务商对应的CDN服务质量从多家CDN服务商中选择目标CDN服务商,并将所述目标CDN服务商调度给所述待下载视频资源。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。