发明内容
为了解决上述技术问题,本申请提供了一种数据获取方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种数据获取方法,包括:
发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据;
接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点;
根据所述反馈信息指示的链接地址生成多个下载请求;
将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
第二方面,本申请提供了一种数据获取方法,应用于调度系统,所述方法包括:
接收多个节点的上报数据,其中,所述上报数据用于指示节点的服务状态;
接收终端的数据请求,其中,所述数据请求用于请求下载目标数据;
根据所述多个节点的上报数据,为所述终端分配响应所述数据请求的多个待响应节点,其中,所述多个待响应节点为除所述终端以外、保存有所述目标数据的节点,所述多个待响应节点包括家庭节点;
将所述多个待访问节点的链接地址,作为反馈信息返回至所述终端,以使所述终端按照链接地址从所述多个待访问节点中的目标节点下载所述目标数据中的部分数据。
第三方面,本申请提供了一种数据获取装置,包括:
第一发送模块,用于发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据;
第一接收模块,用于接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点;
请求生成模块,用于根据所述反馈信息指示的链接地址生成多个下载请求;
下载模块,用于将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
第四方面,本申请提供了一种数据获取装置,包括:
第二接收模块,用于接收多个节点的上报数据,其中,所述上报数据用于指示节点的服务状态;接收终端的数据请求,其中,所述数据请求用于请求下载目标数据;
节点分配模块,用于根据所述多个节点的上报数据,为所述终端分配响应所述数据请求的多个待响应节点,其中,所述多个待响应节点为除所述终端以外、保存有所述目标数据的节点,所述多个待响应节点包括家庭节点;
第二发送模块,用于将所述多个待访问节点的链接地址,作为反馈信息返回至所述终端,以使所述终端按照链接地址从所述多个待访问节点中的目标节点下载所述目标数据中的部分数据。
本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据;
接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点;
根据所述反馈信息指示的链接地址生成多个下载请求;
将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据;
接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点;
根据所述反馈信息指示的链接地址生成多个下载请求;
将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
基于上述数据获取方法,终端在向调度系统请求下载目标数据的时候,调度系统为终端分配多个存储有目标数据的节点,并将多个待访问节点的链接地址发送至终端,终端可根据多个待访问节点的链接地址生成多个用于请求目标数据的下载请求,每个下载请求用于请求下载目标数据中的部分数据,终端将每个下载请求按照链接地址发送给多个待访问节点中的目标节点,也就是说终端可从多个待访问节点获取目标数据中的部分数据,直至终端得到完整的目标数据,通过多个待访问节点下载目标数据减少了单独通过一个节点下载数据的数据压力,且提高了下载效率,加快了响应速度,多个待访问节点包括家庭节点,表示终端可利用家庭节点的闲置带宽下载数据,减少了主干网络的网络流量,也减少了仅使用CDN节点下载数据的使用成本。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中数据获取方法的应用环境图。参照图1,该数据获取方法应用于数据获取系统。该数据获取系统包括终端110、调度系统120、家庭节点130和CDN节点140。终端110和调度系统120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以为手机、平板电脑、笔记本电脑等中的至少一种。调度系统120用于管理所有的节点,每个节点会定时上报数据到调度系统,调度系统根据上报数据就可以得知节点的存储状态、运行状态、节点对应的运营商网络等,调度系统根据节点实时反馈的上报数据为终端的数据请求分配对应的节点,为终端提供数据服务。
家庭节点为普通用户家庭利用闲置带宽提供下载服务的路由器或机顶盒等。CDN节点为内容分发网络(Content Delivery Network,CDN)中的节点,CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的运行主要有内容存储和内容分发,但使用CDN成本较高。
在一个实施例中,图2为一个实施例中一种数据获取方法的流程示意图,参照图2,提供了一种数据获取方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明,该数据获取方法具体包括如下步骤:
步骤S210,发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据。
在本实施例中,终端根据用户操作生成对应的数据请求,数据请求中包括目标数据以及终端对于目标数据的下载要求,下载要求包括下载速度要求和节点评级要求等。
步骤S220,接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点。
在本实施例中,反馈信息包括调度系统根据数据请求为终端分配的多个待访问节点的链接地址,链接地址用于终端访问对应的节点,多个待访问节点用于指示存储有目标数据的节点,多个待访问节点包括家庭节点和CDN节点。
步骤S230,根据所述反馈信息指示的链接地址生成多个下载请求。
在本实施例中,在接收到反馈信息的情况下,根据目标数据的数据量,按照指定拆分数生成多个部分数据,并根据各个部分数据生成一个对应的下载请求,每个下载请求用于请求下载目标数据中的部分数据,所有下载请求对应的部分数据组合成完整的目标数据。
例如,目标数据的数据量为100k,指定拆分数为100,则将目标数据拆分为100个部分数据,根据每个部分数据生成对应的一个下载请求,也就是生成100个下载请求。
亦或是,根据反馈信息中各个节点的传输带宽,确定单个节点无法独立为终端提供数据服务,生成多个下载请求,其中,所述节点的传输带宽高于或等于下载请求对应的预设带宽,使每个节点根据对应的下载请求按照传输带宽为终端提供目标数据中的部分数据。
步骤S240,将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
在本实施例中,多个待访问节点中的目标节点是指满足下载要求的节点,下载要求包括下载速度要求和节点评级要求,下载速度要求是指从家庭节点或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节点下载视频文件中的部分数据,假设预设时长为23秒,在终端内缓存的未播放流媒体数据的播放时长大于12秒的情况下,切换为从多个家庭节点下载数据或从家庭节点和CDN节点同时下载数据,假设时长阈值为8秒,在从多个家庭节点下载数据或从家庭节点和CDN节点返回的未播放流媒体数据的播放时长小于8秒,重新切换为从CDN节点下载数据,以此保证视频文件的播放质量,在满足缓存条件的情况下,尽可能地从家庭节点下载,提高了家庭节点内存储文件的分享率,降低成本,播放流畅度高于仅从CDN节点下载数据,能为用户提供更好的播放体验,直至视频文件全部下载完成。
在一个实施例中,所述将所述多个下载请求中的第一请求按照链接地址发送至相应的家庭节点,并将所述多个下载请求的第二请求按照链接地址发送至相应的CDN节点之后,所述方法还包括:
在接收到CDN节点返回的流媒体数据和家庭节点返回的流媒体数据的情况下,根据所述数据请求对应的业务类型,确定对应的第二切换条件;其中,在满足所述第二切换条件的情况下,切换为从多个家庭节点下载所述目标数据中的部分数据。
具体地,为了能进一步降低使用成本,希望能将从家庭节点和CDN节点下载数据的下载方式切换为仅从家庭节点下载数据,但为了保证满足用户的下载要求,则需要根据数据请求对应的业务类型确定对应的第二切换条件,第二切换条件就是用于满足用户对目标数据的下载要求的情况下,通过切换不同的下载方式尽可能地降低成本。根据第一切换条件切换下载方式,切换为仅从多个家庭节点下载数据。
在一个实施例中,所述第二切换条件包括下载速率条件,所述在满足所述第二切换条件的情况下,切换为从多个家庭节点下载所述目标数据中的部分数据,包括:
在第一下载速度和第二下载速度满足所述下载速率条件的情况下,切换为从多个家庭节点下载所述目标数据中的部分数据,其中,所述第一下载速度用于指示从CDN节点获取所述目标数据中的部分数据的速度,所述第二下载速度用于指示从所述家庭节点获取所述目标数据中的部分数据的速度,所述下载速率条件包括根据所述第一下载速度和第二下载速度得到的平均下载速度大于或等于预设速度。
具体地,在本实施例中将目标数据的以业务类型为文本类举例说明,文本类的数据对于下载速度要求比较高,需要很快下载获取目标数据,因此,在数据下载前期通过CDN节点获取目标数据中的部分数据,在接收到CDN节点返回的流媒体数据之后,在满足下载要求的基础上,为了减少使用成本,将下载方式切换为从CDN节点和家庭节点同时获取目标数据中的部分数据,加入家庭节点参与数据下载,在接收到家庭节点返回的流媒体数据之后,根据CDN节点对应的第一下载速度和家庭节点对应的第二下载速度确定平均下载速度,在平均下载速度大于或等于下载速率条件中的预设速度的情况下,表示下载速度满足下载要求,可以将从CDN节点和家庭节点下载数据的下载方式切换为仅从多个家庭节点下载数据,以在满足用户的下载要求的基础上最大化地减少使用成本。
切换为仅从多个家庭节点下载数据之后,若从家庭节点下载数据的第二下载速度小于预设速度,则又切换为从CDN节点和家庭节点同时下载数据,在下载目标数据的过程中根据下载速度的变化实时调节下载方式,直至目标数据完全下载结束。
在一个实施例中,所述反馈信息包括各个所述家庭节点支持的数据传输方式,所述将多个第一请求分别按照链接地址发送至相应的家庭节点,包括:
根据各个所述家庭节点支持的数据传输方式,将多个第一请求分别按照链接地址发送至相应的家庭节点,其中,所述数据传输方式包括TCP传输方式和P2P传输方式。
具体地,不同的家庭节点支持不同的数据传输方式,按照家庭节点支持的数据传输方式发送第一请求,数据传输方式包括TCP传输方式和P2P传输方式,有的家庭节点支持两种传输方式,有的家庭节点仅支持其中一种传输方式,在家庭节点支持两种传输方式的情况下,将TCP传输方式的优先级设定为第一等级,将P2P传输方式的优先级设定为第二等级,第一等级的优先级高于第二等级,也就是优先选择TCP传输方式进行数据传输;在家庭节点不支持TCP传输方式的情况下,则选择P2P传输方式进行数据传输。
如图3所示,在家庭节点支持的数据传输方式为TCP传输方式的情况下,通过HTTP协议将第一请求按照链接地址分别发送至相应的家庭节点;如图4所示,在家庭节点支持的数据传输方式为P2P传输方式的情况下,通过UDP协议将第一请求按照链接地址分别发送至相应的家庭节点。
本实施例结合了CDN网络和P2P技术从而形成PCDN网络,即P2P内容分发网络,是指以P2P技术为基础,通过挖掘利用边缘网络中海量碎片化闲置资源而构建的低成本高品质内容分发网络服务。可以通过集成PCDN SDK接入PCDN网络服务后能获得等同(或略高于)CDN的分发质量,同时显著降低分发成本。适用于视频点播、直播、大文件下载等业务场景。
在一个实施例中,参照图5,本实施例提供了一种数据下载方法,应用于调度系统,所述方法包括:
步骤S310,接收多个节点的上报数据,其中,所述上报数据用于指示节点的服务状态。
在本实施例中,调度系统按照时间周期定期接收来自各个节点的上报数据,上报数据包括节点的运行状态、存储状态以及属性信息,其中,运行状态用于指示节点提供数据服务的服务能力,存储状态用于指示节点内的存储文件以及可用存储空间,属性信息包括节点覆盖区域和节点所属的网络运营商等。
步骤S320,接收终端的数据请求,其中,所述数据请求用于请求下载目标数据。
在本实施例中,数据请求包括目标数据以及终端对于目标数据的下载要求以及终端所在位置,下载要求包括下载速度要求和节点评级要求等。
步骤S330,根据所述多个节点的上报数据,为所述终端分配响应所述数据请求的多个待响应节点,其中,所述多个待响应节点为除所述终端以外、保存有所述目标数据的节点,所述多个待响应节点包括家庭节点。
在本实施例中,调度系统根据多个节点的上报数据,将存储文件中包含目标数据、且节点覆盖区域包含终端的终端所在位置的节点作为待访问节点,以此方式为终端分配终端附近能够为其提供数据服务的节点。
步骤S340,将所述多个待访问节点的链接地址,作为反馈信息返回至所述终端,以使所述终端按照链接地址从所述多个待访问节点中的目标节点下载所述目标数据中的部分数据。
在本实施例中,获取各个待访问节点的链接地址,将所述多个待访问节点的链接地址发送至目标家庭节点,使所述目标家庭节点按照链接地址从所述多个待访问节点中的目标节点下载所述目标数据中的部分数据,以实现同时从多个待访问节点获取目标数据中的部分数据,提高了下载效率。
在一个实施例中,所述将所述多个待访问节点的链接地址,作为反馈信息返回至所述终端,包括:
将所述多个待访问节点中的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节点下载数据,以保证用户的正常浏览数据资源。
图2和图5为一个实施例中数据获取方法的流程示意图。应该理解的是,虽然图2和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据获取装置,包括:
第一发送模块410,用于发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据;
第一接收模块420,用于接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点;
请求生成模块430,用于根据所述反馈信息指示的链接地址生成多个下载请求;
下载模块440,用于将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
在一个实施例中,下载模块440还用于:
将多个第一请求分别按照链接地址发送至相应的家庭节点,以从多个家庭节点下载所述目标数据中的部分数据,其中,所述多个下载请求包括所述多个第一请求,所述目标节点包括多个家庭节点,每个所述第一请求用于发送至所述多个家庭节点中的一个家庭节点;或,
将所述多个下载请求中的第一请求按照链接地址发送至相应的家庭节点,并将所述多个下载请求的第二请求按照链接地址发送至相应的CDN节点,以从家庭节点和CDN节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点和CDN节点。
在一个实施例中,下载模块440还用于:
在从多个家庭节点下载所述目标数据中的部分数据或从家庭节点和CDN节点下载所述目标数据中的部分数据之前,将所述下载请求中的第三请求按照链接地址发送至相应的CDN节点,以从CDN节点下载所述目标数据中的部分数据;
在接收到CDN节点返回的数据之后,根据所述数据请求对应的业务类型,确定对应的第一切换条件;
其中,在满足所述第一切换条件的情况下,切换为从多个家庭节点下载数据或从家庭节点和CDN节点下载数据。
在一个实施例中,下载模块440还用于:
在所述CDN节点返回的流媒体数据满足缓存条件的情况下,切换为从多个家庭节点下载数据或从家庭节点和CDN节点下载数据,其中,所述缓存条件包括所述CDN节点返回的未播放流媒体数据的播放时长达到预设时长。
在一个实施例中,下载模块440还用于:
在接收到CDN节点返回的流媒体数据和家庭节点返回的流媒体数据的情况下,根据所述数据请求对应的业务类型,确定对应的第二切换条件;
其中,在满足所述第二切换条件的情况下,切换为从多个家庭节点下载所述目标数据中的部分数据。
在一个实施例中,下载模块440还用于:
在第一下载速度和第二下载速度满足所述下载速率条件的情况下,切换为从多个家庭节点下载所述目标数据中的部分数据,其中,所述第一下载速度用于指示从CDN节点获取所述目标数据中的部分数据的速度,所述第二下载速度用于指示从所述家庭节点获取所述目标数据中的部分数据的速度,所述下载速率条件包括根据所述第一下载速度和第二下载速度得到的平均下载速度大于或等于预设速度。
在一个实施例中,下载模块440还用于:
根据各个所述家庭节点支持的数据传输方式,将多个第一请求分别按照链接地址发送至相应的家庭节点,其中,所述数据传输方式包括TCP传输方式和P2P传输方式。
在一个实施例中,参照图7,本实施例提供了一种数据下载装置,应用于调度系统,所述方法包括:
第二接收模块510,用于接收多个节点的上报数据,其中,所述上报数据用于指示节点的服务状态;接收终端的数据请求,其中,所述数据请求用于请求下载目标数据;
节点分配模块520,用于根据所述多个节点的上报数据,为所述终端分配响应所述数据请求的多个待响应节点,其中,所述多个待响应节点为除所述终端以外、保存有所述目标数据的节点,所述多个待响应节点包括家庭节点;
第二发送模块530,用于将所述多个待访问节点的链接地址,作为反馈信息返回至所述终端,以使所述终端按照链接地址从所述多个待访问节点中的目标节点下载所述目标数据中的部分数据。
在一个实施例中,所述第二发送模块530还用于:
将所述多个待访问节点中的CDN节点的链接地址发送至所述终端,以使所述终端从所述CDN节点下载所述目标数据中的部分数据,其中,所述目标节点包括CDN节点;
接收到所述终端的第一返回数据的情况下,根据所述数据请求对应的业务类型,确定对应的第一切换条件,其中,所述第一返回数据用于指示所述终端从所述CDN节点下载所述目标数据中部分数据的传输状态;
在所述第一返回数据满足第一切换条件的情况下,发送所述多个待访问节点中的家庭节点和所述CDN节点的链接地址至所述终端,以使所述终端按照链接地址从所述家庭节点和CDN节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点和CDN节点。
在一个实施例中,所述发送所述家庭节点和所述CDN节点的链接地址至所述终端之后,所述第二发送模块530还用于:
接收到所述终端的第二返回数据的情况下,根据所述数据请求对应的业务类型确定对应的第二切换条件,其中,所述第二返回数据用于指示所述终端从所述家庭节点和CDN节点获取所述目标数据中部分数据的传输状态;
在所述第二返回数据满足所述第二切换条件的情况下,发送所述多个待访问节点中的家庭节点的链接地址至所述终端,以使所述终端按照链接地址从所述家庭节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图8所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据获取方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据获取方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的数据获取装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据获取装置的各个程序模块,比如,图6所示的发送模块、接收模块、请求生成模块430和下载模块440。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据获取方法中的步骤。
图8所示的计算机设备可以通过如图6所示的数据获取装置中的发送模块执行发送数据请求至调度系统,其中,所述数据请求用于请求下载目标数据。计算机设备可通过接收模块执行接收所述调度系统返回的反馈信息,其中,所述反馈信息用于指示多个待访问节点的链接地址,所述多个待访问节点中包括家庭节点。计算机设备可通过请求生成模块430执行根据所述反馈信息指示的链接地址生成多个下载请求。计算机设备可通过下载模块440执行将各个所述下载请求按照链接地址发送至所述多个待访问节点中相应的目标节点,以从所述目标节点下载所述目标数据中的部分数据,其中,所述目标节点包括家庭节点。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项实施例所述的方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。