资源离线下载方法及装置与流程

文档序号:12556910阅读:289来源:国知局
资源离线下载方法及装置与流程
本发明涉及网络资源管理领域,尤其是关于资源离线下载方法及装置,以进行网络资源的离线下载管理。

背景技术:
离线下载就是下载工具的服务器代替用户先行下载。用户发出离线下载命令后,离线下载服务器就可以在用户不在线的状态下,把用户需要的资源下载到离线下载服务器提供的共享存储空间。然后用户可以从该共享存储空间高速地把需要的资源下载到本地。离线下载可以省却用户的挂机等待的时间,最重要的是能够腾出网络带宽做其他的事情。离线下载主要有三大优势:1.高速:利用离线下载服务器的强大带宽,相比于用户端网络离线下载服务器能够更快的将资源/文件下载到用户端的云端存储(云端存储的各个用户可以上传文件到该云端存储或利用离线下载将资源保存到该云端存储,等等)。下载完成后,用户可以把资源/文件从该云端存储高速稳定的下载到你的机器上(即根据用户的需求随时将资源、文件等同步至用户本地)。由于离线下载服务器带宽远大于用户端的网络,离线下载服务器能够提供高速下载速度。2.稳定:离线下载服务器可以为用户提供稳定的下载速度。而如果用户直接下载时,受限于网络环境的影响,如,A运营商下属的用户从B运营商处下载资源,则下载速度可能处于一个波动的状态,不可预期。而离线下载能够提供稳定的速度。3.省时:离线下载服务器可以节省挂机时间,提供高速的下载,使下载时间利用率更高。现有的离线下载技术方案,如图1所示为现有技术中离线下载服务器的工作原理图,用户向Linux虚拟服务器(LVS)11发出离线下载指令,Linux虚拟服务器11中的负载调度器将用户的下载请求发送到一组离线下载服务器12-1,12-2,12-3,从中选择一个离线下载服务器执行离线下载任务。LVS采用IP负载均衡技术和基于内容请求分发技术,使用多个离线下载服务器分别下载用户所需的资源。负载调度器具有很好的吞吐率,可以将请求均衡地转移到不同的离线下载服务器上执行,且负载调度器可以自动屏蔽掉离线下载服务器的故障,从而将一组离线下载服务器构成一个高性能的、高可用的虚拟服务器集群。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。由于资源存在的网络环境(网络运营商)具有不确定性,可能在网通网络环境下,也可能在电信网络环境下。完全使用双线的离线下载服务器成本又过高,而使用固定的离线下载服务器就有可能导致跨运营商下载资源,例如使用网通的离线下载服务器下载电信网络环境的资源,速度就会很慢,影响离线下载服务的质量。普通的LVS调度策略是只要离线下载服务器没有停止工作,就会向其发送任务,无法实时的根据离线下载服务器的各项负载情况进行调度。所以,此方案只适合于离线下载服务器负载无压力的场景。并且,由于相同的统一资源定位符(URL)对应的资源中大部分都是重复的,而且现有的离线下载服务器不能判断同一URL对应的资源是否发生变化(如不对URL的网络资源做消重处理),会导致重复下载,进而造成很多额外的开销。

技术实现要素:
针对上述现有技术的缺陷,本发明的技术方案主要解决的技术问题是提供一种资源离线下载方法及装置,根据资源的网络属性来分配离线下载任务,以解决现有技术存在的跨网络环境资源下载和重复资源下载而引起的离线下载服务器下载效率低的问题。依本发明的一个方面,提供了一种资源离线下载方法,其包括:根据需要离线下载的资源的网络属性确定资源所归属的网络运营商;根据设定的任务调控策略,从网络运营商的离线下载服务器集群中选择离线下载服务器,该离线下载服务器用于对资源进行离线下载;将该资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。其中,根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商包括:获取与所述资源的统一资源定位符URL对应的域名信息,并解析出与所述域名信息对应的IP地址;根据与所述域名信息对应的IP地址查询数据库以获取与所述IP地址对应的网络运营商并将其确定为所述资源所归属的网络运营商,所述数据库存储有网络运营商及其IP地址。其中,任务调控策略为将所述资源的离线下载任务分配给当前负载权值最小的离线下载服务器。其中,负载权值为:k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源,该k1为cpu使用量对应的权值,k2为磁盘余量对应的权值,k3为内存余量对应的权值,所述k4为带宽资源对应的权值。其中,根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商之前,还包括:获取所述需要离线下载的资源的消重特征,所述消重特征是指所述资源的身份标识且其根据所述资源的URL、大小和内容片段生成;判断所述需要离线下载的资源的消重特征是否与全局消重表中存储的已经离线下载的资源的消重特征相同,以及所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定时间值,所述全局消重表存储有已经离线下载的资源的消重特征;如果消重特征相同且时间间隔小于设定时间值,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。其中,所述消重特征通过下列步骤生成:提取所述资源的头100k内容、中间随机位置100k内容、尾部100k内容作为资源的内容片段;将所述资源的URL、资源大小与所述内容片段拼接成字符串;对所述字符串进行MD5计算以得到所述消重特征。依本发明的一个方面,提供了一种资源离线下载装置,其包括:网络运营商确定模块,适于根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;离线下载服务器选择模块,适于根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择离线下载服务器,其中,所述离线下载服务器用于对资源进行离线下载;任务执行模块,适于将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。其中,所述网络运营商确定模块包括:第一获取模块,适于获取与所述资源的统一资源定位符URL对应的域名信息,并解析出与所述域名信息对应的IP地址;第二获取模块,适于根据与所述域名信息对应的IP地址查询数据库以获取与所述IP地址对应的网络运营商并将其确定为所述资源所归属的网络运营商,所述数据库存储有网络运营商及其IP地址。其中,所述任务调控策略为将所述资源的离线下载任务分配给当前负载权值最小的离线下载服务器。其中,负载权值为:k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源,该k1为cpu使用量对应的权值,k2为磁盘余量对应的权值,k3为内存余量对应的权值,k4为带宽资源对应的权值。其中,消重处理模块,适于获取所述需要离线下载的资源的消重特征,所述消重特征指所述资源的身份标识且其根据所述资源的URL、大小和内容片段生成;判断所述需要离线下载的资源的消重特征是否与全局消重表中存储的已经离线下载的资源的消重特征相同,以及所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定时间值,所述全局消重表存储有已经离线下载的资源的消重特征;如果消重特征相同且时间间隔小于设定时间值,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。其中,该装置还包括消重特征生成模块,其包括:提取单元,适于提取所述资源的头100k内容、中间随机位置100k内容、尾部100k内容作为资源的内容片段;拼接单元,适于将所述资源的URL、资源大小与所述内容片段拼接成字符串;计算单元,适于对所述字符串进行MD5计算。由本发明的解决方案,具有以下有益效果:本发明通过分析离线下载资源的网络属性并确定资源归属的网络运营商,并根据任务调控策略,将任务分配到不同网络属性集群中的离线下载服务器进行处理,避免了跨运行商下载速度慢的缺陷,显著提高了离线下载速度、降低离线下载服务器压力,提高了服务器处理能力。并且,任务调控策略依据负载调控技术,将任务发送到负载最小的机器上处理,从而达到了资源的最大利用率。本发明还基于资源特征的消重策略,对同一网络地址ur1的资源进行消重,即一个ur1被下载保存到服务器后则其他相同的ur1的请求将会直接成功,不必再重新下载保存一次,避免了相同资源的重复下载,降低了服务器压力,提高了服务器有效响应能力。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:图1为现有技术中离线下载服务器的工作原理图;图2为依据本发明一个实施例的资源离线下载方法的流程图;图3为依据本发明一个实施例的资源离线下载方法的流程图;图4为依据本发明一个实施例的资源离线下载装置的结构示意图;图5为依据本发明一个实施例的资源离线下载装置的结构示意图;图6为依据本发明一个实施例的资源离线下载装置的结构示意图。具体实施方式下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。图2为依据本发明一个实施例的资源离线下载方法的流程图,其包括:步骤21:根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;步骤22:根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择离线下载服务器,其中,所述离线下载服务器用于对资源进行离线下载;步骤23:将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。由此可知,依据此实施例的技术方案进行资源离线下载时,首先根据需要离线下载的资源的网络属性确定其所归属的网络运营商,也就是确定要离线下载的资源属于哪个网络运营商。在确定好网络运营商之后,根据设定的任务调控策略,从所确定的网络运营商的离线下载服务器集群中选择离线下载服务器。选择好离线下载服务器之后,就可以将该资源的离线下载任务分配给该离线下载服务器,由该离线下载服务器对该资源进行离线下载。由于本方案中所确定的网络运营商正是需要离线下载的资源所归属的网络运营商,所以避免了跨网络运营商进行下载的问题。而且,从资源所归属的网络运行商下载该资源可以显著提高离线下载的速度,降低离线下载服务器的压力。依据本发明的一个实施例,根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商可以进一步包括:获取与所述资源的统一资源定位符URL对应的域名信息,并解析出与所述域名信息对应的IP地址;根据与所述域名信息对应的IP地址查询数据库以获取与所述IP地址对应的网络运营商并将其确定为所述资源所归属的网络运营商,所述数据库存储有网络运营商及其IP地址。在本实施例中,是根据资源的URL获取与该URL对应的域名信息,根据域名信息可以解析出与该域名信息对应的IP地址。由于在数据库中存储有网络运营商及其IP地址的信息,因此,根据IP地址就可以在数据库中查找到与该IP地址对应的网络运营商,从而可以得到该资源所对应的网络运营商。当然,对于网络运营商的确定还可以采用本领域现在已知或者将来已知的任何方式。对于任务调控策略而言,也就是如何对离线下载任务进行分配,分配给哪个离线下载服务器。依据本发明的一个实施例,任务调控策略是将所述资源的离线下载任务分配给当前负载权值最小的离线下载服务器。其中,所述负载权值可以采用下列公式来计算:负载权值=k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源,其中,k1为cpu使用量对应的权值,k2为磁盘余量对应的权值,k3为内存余量对应的权值,k4为带宽资源对应的权值。依据本发明的一个实施例,在所述根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商之前,该实施例还包括:获取所述需要离线下载的资源的消重特征,所述消重特征是指所述资源的身份标识且其根据所述资源的URL、大小和内容片段生成;判断所述需要离线下载的资源的消重特征是否与全局消重表中存储的已经离线下载的资源的消重特征相同,以及所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定时间值,所述全局消重表存储有已经离线下载的资源的消重特征;如果消重特征相同且时间间隔小于设定时间值,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。简言之,该实施例是对需要离线下载的资源进行消重处理,避免重复下载的问题。消重处理涉及全局消重和局部消重两方面。全局消重:对所有用户可见,可以避免下载其他用户已经下载过的资源(即用以确定请求下载的资源是否已经被下载而避免重复下载增加服务器压力)。具体而言,如果一个资源已被某个人下载完,则该资源的消重特征可以记录到一个全局可见的表,如全局消重表,之后所有其他人在下载资源时,都可以使用所要下载的资源的消重特征去查询该全局可见的表(如,全局消重表),若发现资源已存在,则不必重复下载。其中,消重特征可以指该资源的身份标识。可以认为,消重特征相同的多个资源,其内容是相同的。可以在未获取资源全部内容时,查看本地是否具有相同的资源。例如本地保存了文件A,并且文件比较大,这时又要从网络下载一个文件资源,但是不知道是否就是文件A,如果把文件全部下载下来才发现和本地文件A相同,这样就消耗了较大的资源。通过比对资源的消重特征,就不必下载完该文件资源的所有内容,就能够知道本地是否存在相同文件,从而能够防止重复下载。具体而言,全局消重表是一个key-value结构。其中,key即消重特征,可以包括资源地址(URL),资源大小与资源特征(如资源内容片段)。而value值固定为1,用于表示此key在全局消重表中存在,且该资源已经被下载并存在。当用户提交一个离线下载任务(用户提交的任务可以用离线下载请求来体现)时,会由该任务对应的资源的资源地址,资源大小与资源特征拼接成一个字符串,以此字符串做为key,并在全局消重表中查找与该key匹配的资源是否存在,如果存在,则进行消重,即不真实下载用户所需的资源,直接提示用户下载成功,并使用之前已经离线下载的与该资源相同的资源来满足用户的需求;如果不存在,则全局消重失败(或者说无需全局消重),这时可以真实下载用户所需的资源,并在下载完成时,基于该下载的资源更新全局消重表,在全局消重表中添加该资源的消重特征,后续若需要离线下载与该消重特征相匹配的资源时则无需真实下载。消重特征在资源实际下载完成后才添加到全局消重表,这样保证了一个用户对一个资源的下载任务,不受另一个用户对该同一个资源的下载任务的失败的影响。例如:第一用户在下载一资源时,就将消重特征放入全局消重表,第二用户也请求下载该同一资源则会因为在全局消重表中已经存在该资源,不为第二用户真实下载(第二用户本地获取)。一旦第一用户下载失败,则第二用户必然会下载失败。例如,根据用户请求的一个用户下载资源A的离线下载任务,根据该离线下载任务获取该资源A的URL、大小和内容片段,并根据该资源A的URL、大小和内容片段生成消重特征key(字符串),基于该消重特征key在全局消重表中查询与该key相匹配的资源,如,查询与该key相同的key’,若在全局消重表中查询到该key’,则表示资源A已经被下载过,无需再次下载资源A,若未查询到该key’,则表示资源A未被下载过,则需要下载资源A,以供用户使用。局部消重:只对个人可见,可以避免个人反复提交任务造成重复下载。在有全局消重的情况下,还需要局部消重的原因是只有在该资源的下载任务成功完成后,才会将相应的信息(消重特征)存在于全局消重表中,即一资源被完全下载完成之后,该资源的消重特征才会被添加到全局消重表中。所以,在文件未下载完成之前,一旦同一用户反复提交一个相同的URL地址,用以下载相同的资源(即反复提交多个相同的请求同一个资源的下载任务),如果没有局部消重,也会导致资源被多次下载,加大服务器压力影响下载效率。局部消重不使用资源的消重特征进行消重,而是直接使用URL地址进行消重,如果同一用户提交相同的URL地址,则进行消重。一种方式,可以在进行全局消重之前进行局部消重。具体而言,可以预先为每个用户分配一个唯一用户标识,利用用户标识和资源地址(URL)来限定一个用户的下载任务,并根据用户标识和资源地址查找该用户是否具有相同的下载任务,也即是说,可以在接收用户离线下载任务的服务器(如,任务服务器)中查询用户任务表,使用该用户标识和资源的URL作为关键字,在用户任务表中查找该用户是否已经提交了相同的下载任务,如果找到(即,对于该用户存在相同的任务),表示该用户对此资源的下载任务已经存在,则返回任务存在信息给用户,否则(即该任务不存在)再进行全局消重。例如,第一用户和第二用户同时离线下载www.t.com/test.doc资源,这时第一用户和第二用户都有一个对应此该资源的下载任务,在下载任务未完成之前,即(资源被离线下载到离线服务器之前),全局消重表中不会有此资源的消重特征,当然,这样第二用户的下载任务失败不会影响第一用户对此资源的下载。没有局部消重时,若第一用户多次提交下载该资源的下载任务,那么在用户任务表中会出现多个相同的对应于该用户的下载任务,第一用户多次的提交此下载任务,就会造成第一用户在用户任务表中有很多请求相同资源的任务。而一旦进行局部消重,则可以避免同一用户多次下载同一资源的问题,防止增加服务器压力。另一种方式,也可以在全局消重之后,执行局部消重。对于消重特征的生成,依据本发明的一个实施例,可以包括:提取所述资源的头100k内容、中间随机位置100k内容、尾部100k内容作为资源的内容片段;将所述资源的URL、资源大小与所述内容片段拼接成字符串;对所述字符串进行MD5计算以得到所述消重特征。例如:URL为www.t.com/test.doc,可以获取该URL对应的资源大小5000,资源头部aaa...(100k字节数据)、中间bbb...(100k字节数据)及尾部ccc(100k字节数据)对应的三个资源片段,则消重特征为MD5为:“www.t.com/test.doc5000aaa...bbb...ccc...”。图3是依据本发明的一个实施例的资源离线下载方法的流程图。在此实施例中,进一步会包括对下载请求进行消重处理等,该消重处理包括全局消重和局部消重。其中请求下载的资源可以是请求下载的网络资源,或者说网络上能下载的内容,诸如:游戏、软件、音乐、文本等等。在该实施例中,首先,根据来自用户的下载请求,对要下载的资源进行解析验证,从而确定归属的网络运营商,而在最后确定之前还采用消重处理,避免相同资源的重复下载以降低服务器压力、提高服务器响应能力。步骤S001,接收用户发送的离线下载请求。步骤S002,对要下载的资源进行URL解析和验证,获取所述资源的统一资源定位符URL对应的域名信息,通过域名系统DNS解析出所述域名信息对应的IP地址,并发出验证请求(如验证是否有该IP、是否该IP正确等)。如果步骤S002中的该验证失败,则发出验证失败消息,通知用户,如步骤S004。如果步骤S002中的验证通过,则返回所述资源文件名,资源大小以及目标域名,并进入下一步,即步骤S003。在步骤S003处,可以对用户进行验证,如用户身份的验证等,如果用户验证失败,则发出验证失败消息,通知用户,如到步骤S004。如果用户验证通过,则可以对URL进行全局消重和局部消重(在一个实施例中,对URL可以先进行全局消重再进行局部消重),进一步地,若用户验证通过,则进入步骤S005。步骤S005,判断是否对URL进行全局消重。如果判断为“是”,意味所述URL的网络资源已经被其他用户下载过即已经存在,则取消下载请求,如步骤S011。如果不需要进行全局消重,即判断为“否”,则进入到步骤S006。步骤S006,判断是否需要进行局部消重。如果判断需要局部消重(该用户提交重复的请求),即“是”,则进入步骤S011,取消下载请求,并通知用户任务已经进行中。如果判断所述的URL不需要进行局部消重(当然也不需要全局消重),即步骤S006的判断也为“否”,则对于该下载请求,任务服务器创建任务,如步骤S007。创建任务的初始状态为“任务排队中”。步骤S007创建的任务,将发送到相应的离线下载服务器集群去,即找到资源归属的网络运营商。如步骤S008,就是去确定离线下载服务器集群(资源归属的网络运营商)。各网络运营商及其对应的IP地址可以预先存储到数据库中(如IP库)。而在前述步骤S002,对下载请求进行所述资源的统一资源定位符URL解析所获得的该URL对应的域名信息DNS、并进而通过对该DNS解析得到的该DNS对应的IP地址。则在步骤S008,能根据所述域名信息DNS对应的该IP地址查询所述数据库预先存储的信息(IP与对应的运营商),获取与所述IP地址对应的网络运营商,将该网络运营商确定为所述资源所归属的网络运营商(比如网通,电信,教育网,移动等等),进而获取该网络运营商对应的离线下载服务器集群号,并确定离线下载服务器集群中的一个离线下载服务器执行下载任务。具体而言,可以预先设置一个离线下载服务器集群与网络运营商的对应表。例如,电信对应3,5号离线下载服务器集群,网通对应2,4号离线下载服务器集群,当资源的网络属性为电信时,从电信对应的离线下载服务器集群号中可以随机选出一个离线下载服务器执行离线下载任务,也可以按照一定的规则(如,最小负载等)选择一个离线下载服务器。在根据需要离线下载的资源的网络属性来确定所述资源所归属的网络运营商之前,还可以获取已经离线下载的资源的消重特征,将所述已经离线下载的资源的消重特征存储在全局消重表中。这样,在步骤S005中,获取所述用户请求的、需要离线下载的资源的消重特征,进行是否进行全局消重的判断时,判断所述需要离线下载的资源的消重特征是否和所述全局消重表中存储的已经离线下载的资源的消重特征相同,当然,还可以同时在此判断所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定的时间值(时间值将在下面描述的消重特征的时效性进行说明)。如果判断为“是”,则取消下载所述需要离线下载的资源的请求即步骤S011。否则,建立所述需要离线下载的资源的离线下载任务即步骤S007。利用该全局资源消重的处理(称为全局消重策略),避免重复下载对服务器造成的压力,其主要利用前述的消重特征实现。消重特征可以根据所述资源的URL、大小和内容片段生成。比如:可以提取资源的头100k内容,中间随机位置100k内容,尾部100k内容作为资源内容的片段,结合资源URL以及资源大小拼接成一个字符串,再将该字符串生成一个MD5特征值。举一个例子:用户需要下载的资源所对应的URL为www.t.com/test.doc,可以获取该URL对应的资源大小,资源头部、中间及尾部对应的三个资源片段,如,资源大小为5000,片段头部:aaa...(100k字节数据),中间:bbb...(100k字节数据),尾部:ccc(100k字节数据),则消重特征为md5(“www.t.com/test.doc5000aaa...bbb...ccc...”),进一步地,可以通过http的header请求获取URL对应的资源大小,可以通过http的range协议获取资源的部分内容。当MD5特征值已经存在于全局消重表中,则对其进行全局消重而不必再重复下载。在对资源进行消重时,可以只对属于类型白名单中的资源类型的资源进行消重。进一步地,资源类型可以是被请求资源的文件类型。该文件类型还可以根据扩展名判断,例如,图片类型,扩展名可以为.jpg,gif等。处于类型白名单中的资源类型,可以是很少被修改的资源的类型,比如图片、视频、软件程序等。在一个实施例中,消重特征可以有时效性,例如其有效期可以设为一周(此处仅举例说明,并非对本发明进行限制),过期后,消重的资源需要重新下载。对于消重特征的有效性,可以通过全局消重表来实现,具体而言,当获取了已经离线下载的资源的消重特征,就可将所述已经离线下载的资源的消重特征存储在全局消重表中,并对全局消重表进行更新,当消重特征过期后,可以释放全局消重表中的该消重特征。而在前述在步骤S005进行全局消重的判断时,除了对消重特征进行对比判断,若还同时判断所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定的时间值,该时间值即有效周期,就能更快、更有效地确定,是否需要做全局消重的处理。步骤S009,可以基于所述离线下载服务器集群中离线下载服务器的负载进行动态任务调控,并选择所指定的离线下载服务器,即能确定分配该任务的离线下载服务器。在通过步骤S009选择集群中的离线下载服务器时,可以将离线下载异步消息发送到对应的离线下载服务器集群,进而,离线下载任务可以进入相应的任务队列,等待任务的执行。动态任务调控以确定要将任务分配给集群中的哪个离线下载服务器,例如:任务可以被提交到如图4所示的某一离线下载服务器集群44或45后,离线下载服务器集群44或45中的任务调度器(未图示出)会将任务分配到当前负载权值最小的线上机器上去处理。负载权值的计算公式为:负载权值=k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源做加权运算;其中K为各项计算机资源所占权值,离线下载服务主要依赖磁盘资源,所以采用的权值可以为k2=5;k1=k3=k4=1。离线下载任务被分配给所述指定的离线下载服务器后,由该离线下载服务器(如其离线下载工作进程worker)执行离线下载。具体而言,离线下载任务首先进入任务队列等待阶段,离线下载服务器的离线下载工作进程worker依次获得任务队列中的任务,进而可以根据获得的任务,通知相应的用户集群(如,通知发送离线下载请求的用户),并修改任务状态为“下载中”。步骤S010,离线下载的任务分配到了上述步骤S009确定的离线下载服务器之后,所述指定的离线下载服务器接收到分配过来的任务,则开始执行离线下载任务。此后,如果下载成功则将下载的内容(如“图片”等)保存到数据库中(如非关系型数据库cassandra),保存成功后,将下载结果参数设置为“成功”并发送离线下载反馈异步消息到对应的用户集群,并修改页面元信息(meta信息),可以更新任务状态为“下载完成”;而如果下载失败或者保存失败,则将下载结果参数设置为“失败”并记录失败原因后发送离线下载反馈异步消息到对应的用户集群,并修改页面元信息(meta信息),可以更新任务状态为“下载失败”。图4为本发明一具体实施方式的资源离线下载装置的结构图。图4的装置中包括任务服务器41、消息服务器42、全局消重装置43、离线下载服务器集群44、45,以及离线下载服务器集群44、45中的任务调度器(未示出)、离线下载服务器(未示出)、离线下载服务器中的Storm分布式计算平台(未示出)、云存储(未示出)等。任务服务器41可以根据需要离线下载的资源的网络属性,确定所述资源所归属的网络运营商。其接收用户的请求,查询全局消重表用以判断是否进行全局消重,如果资源未消重则会向消息服务器42发送一条下载消息,消息内容可以包括资源URL地址、步骤S008确定的目标离线下载服务器集群号等。该任务服务器41主要用来处理用户请求,解析资源URL,获得任务信息和离线下载服务器集群号,以便确定离线下载集群。具体而言,任务服务器41先会将各种网络运营商和各网络运营商分别对应的IP地址进行关联存储。该任务服务器41首先解析出资源URL对应的域名信息、并通过DNS解析获得域名对应的IP信息。而后能利用该IP信息在IP信息库中查询对应的网络运营商(网通、电信、教育网、移动等)。并且计算出具有相同运营商的离线下载集群号。该任务服务器41可执行图3中步骤S001-S003中的操作,接收到用户发送的下载请求、URL解析和验证、用户验证,其中,任一验证未通过则表明验证失败,如步骤S004的操作。当验证都通过时,那么判断是否进行URL消重,如步骤S005、S006的操作,当确定资源可以消重则执行步骤S011,即取消下载请求,对该资源不进行下载,则利用该系统中的全局消重表43进行消重操作(消重策略如上述介绍的全局资源消重策略)。而若不需要消重,即步骤S005、S006都为否时,则创建离线下载资源的任务,如步骤S007,并将该离线下载资源的任务发到系统中的消息服务器42。全局消重装置43,执行全局资源消重策略,如上述图3描述的方法所述。在根据需要离线下载的资源的网络属性来确定所述资源所归属的网络运营商之前,还可以获取已经离线下载的资源的消重特征,将所述已经离线下载的资源的消重特征存储在全局消重表中。还可以获取所述需要离线下载的资源的消重特征。判断所述需要离线下载的资源的消重特征是否和所述全局消重表中存储的已经离线下载的资源的消重特征相同,并且判断所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定的时间值,如果是,则不下载所述需要离线下载的资源即步骤S011。否则,建立所述需要离线下载的资源的离线下载任务即步骤S007。其中,所述资源的消重特征根据所述资源的URL、大小和内容片段而生成。并且在后面下载完后可以根据获取的下载后的资源的消重特征来更新该全局消重表。全局消重表可以位于该全局消重装置43中,由该消重装置执行上述全局资源消重策略及相应的实施步骤。该消息服务器42,可以接收来自所述任务服务器的信息、离线下载任务并处理相应的信息,以及发送所述信息、离线下载任务以及所述信息到相应的离线下载服务器集群。也就是将接收的各种消息、信息和各个任务分发到相应的离线下载服务器集群(如按集群号分发),实现转发消息的操作,其接收来自任务服务器41的消息、再将其发送到正确的目的地,如转发到目标离线下载集群。图4中示出了两个离线下载服务器集群(例如网通对应的离线下载服务器集群44和电信对应的离线下载服务器集群45),本领域技术人员应该可以推断出,本发明离线下载服务器集群的数据可以不限于此,即离线下载服务器集群可以包含多个离线下载服务器,进一步地,每个离线下载服务器可以包括Storm平台、云存储,该Storm平台可以用于下载目标资源,云存储可以用于存储资源信息。离线下载服务器集群44、45,根据设定的任务调控策略,从所述确定的网络运营商的离线下载服务器集群中,选择离线下载服务器,并将所述资源的离线下载任务分配给所述离线下载服务器。其中,消息服务器42根据离线下载服务器集群号将创建的任务发送至相应的离线下载服务器集群,如步骤S008的操作。各离线下载服务器集群中的每一个离线下载服务器还可以包括一个Storm分布式计算平台(未示出)。Storm分布式计算平台是分布式的、容错的实时计算系统。为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。Storm也可被用于“连续计算”(continuouscomputation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。云存储可以存储离线下载的网络资源,用户可以通过访问云存储空间访问离线下载的网络资源。任务调控策略包括一个或多个任务调度策略,离线下载服务器集群根据所述一个或多个任务调度策略,将所述资源的离线下载任务分配给到当前负载最小的离线下载服务器。离线下载服务器集群中,具有任务调度器,其在所述网络运营商的离线下载服务器集群中设置进行离线下载任务分配。具体而言,所述资源的离线下载任务被发送给所述任务调度器,该任务调度器,根据所述任务调度策略,计算各个离线下载服务器的负载权值,将当前负载权值最小的离线下载服务器指定为所述任务的离线下载服务器。将分配到该离线下载集群中的离线下载任务分配给任务调度器。该任务调度器根据该集群中的各个离线下载服务器的资源使用情况,再将任务分配到当前负载权值最小的线上机器(离线下载服务器)上处理,以便如步骤S010执行下载任务。负载权值的计算公式为:负载权值=k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源做加权运算;其中K为各项计算机资源所占权值,离线下载服务主要依赖磁盘资源,所以采用的权值可以为k2=5;k1=k3=k4=1。图5为依据本发明一实施例的资源离线下载装置的结构图。该装置可以包括网络运营商确定模块51,用于根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;离线下载服务器选择模块52,用于根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择指定的离线下载服务器;任务执行模块53,用于将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。上述模块是对应于图2、3所示方法的处理步骤的功能模块。进一步地,网络运营商确定模块51可以将各种网络运营商和各种网络运营商分别对应的IP地址进行关联存储,获取所述资源的统一资源定位符URL对应的域名信息,通过域名系统DNS解析出所述域名信息对应的IP地址(第一获取模块);根据所述域名信息对应的IP地址查询所述关联存储的信息,获取所述域名信息对应的IP地址对应的网络运营商,将该网络运营商确定为所述资源所归属的网络运营商(第二获取模块)。网络运营商确定模块51包括第一、第二获取模块(未示出)。离线下载服务器选择模块52可以根据一个或多个任务调度策略,将所述资源的离线下载任务分配给到当前负载最小的离线下载服务器,即选择离线下载服务器集群中当前负载最小的离线下载服务器。进一步地,可以用于在所述网络运营商的离线下载服务器集群中设置进行离线下载任务分配的任务调度器(如图4中提到的Storm分布式计算平台中的调度器),将所述资源的离线下载任务分配给所述任务调度器,通过所述任务调度器,根据所述网络运营商的离线下载服务器集群中的各个离线下载服务器的资源使用情况,计算得到各个离线下载服务器的负载权值,通过所述任务调度器将负载权值最小的离线下载服务器确定为所述指定的离线下载服务器。离线下载服务器选择模块52,具体用于通过所述任务调度器计算各个离线下载服务器的负载权值的公式如下:负载权值=k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源;所述k1为cpu使用量对应的权值,所述k2为磁盘余量对应的权值,所述k3为内存余量对应的权值,所述k4为带宽资源对应的权值。图6是依据本发明的一个实施例的资源离线下载装置的结构图。在该装置中可以包括消重处理的模块61、网络运营商确定模块62、离线下载服务器选择模块63、任务执行模块64。各个模块也是对应图2、3所示方法的执行步骤的功能模块。如图6所示。此装置可以对应上述方法中关于消重处理策略的功能及实施。其包括:消重处理模块61,可以用于获取将要离线下载的资源的消重特征,并判断所述离线下载的资源是否需要进行消重(在进行网络运营商确定之前,即网络运营商确定模块62的处理之前进行处理的模块)。网络运营商确定模块62,可以用于根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商。离线下载服务器选择模块63,用于根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择指定的离线下载服务器。任务执行模块64,用于将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。进一步,消重处理模块61将所述已经离线下载的资源的消重特征存储在全局消重表中,所述资源的消重特征可以根据所述资源的URL、大小和内容片段而生成。消重处理模块61获取所述需要离线下载的资源的消重特征;并判断所述需要离线下载的资源的消重特征是否和所述全局消重表中存储的已经离线下载的资源的消重特征相同,并且所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔小于设定的时间值,如果是,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。进一步,全局消重表中的消重特征可以是提取所述资源的头部100k内容,中间随机位置100k内容,尾部100k内容作为资源的内容片段,将所述资源的URL、资源大小与资源内容片段拼接成一个字符串,对所述字符串做消息摘要算法第五版(MD5)计算得到。该全局资源消重策略,依赖于上述完整的查重规则,保证消重的ur1对应的资源是一致的或不一致的概率在可容忍的范围内。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。本发明公开了A1、一种资源离线下载方法,其包括:根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择离线下载服务器,其中,所述离线下载服务器用于对资源进行离线下载;将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。A2、如A1所述的方法,其中,所述根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商,进一步包括:获取与所述资源的统一资源定位符URL对应的域名信息,并解析出与所述域名信息对应的IP地址;根据与所述域名信息对应的IP地址查询数据库以获取与所述IP地址对应的网络运营商并将其确定为所述资源所归属的网络运营商,所述数据库存储有网络运营商及其IP地址。A3、如A1或A2所述的方法,其中,所述任务调控策略为将所述资源的离线下载任务分配给当前负载权值最小的离线下载服务器。A4、如A3所述的方法,其中,所述负载权值为:k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源,其中,所述k1为cpu使用量对应的权值,所述k2为磁盘余量对应的权值,所述k3为内存余量对应的权值,所述k4为带宽资源对应的权值。A5、如A1至A4任一项所述的方法,其中,在所述根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商之前,还包括:获取所述需要离线下载的资源的消重特征,所述消重特征是指所述资源的身份标识且其根据所述资源的URL、大小和内容片段生成;判断所述需要离线下载的资源的消重特征是否与全局消重表中存储的已经离线下载的资源的消重特征相同,以及所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定时间值,所述全局消重表存储有已经离线下载的资源的消重特征;如果消重特征相同且时间间隔小于设定时间值,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。A6、如A5所述的方法,其中,所述消重特征通过下列步骤生成:提取所述资源的头100k内容、中间随机位置100k内容、尾部100k内容作为资源的内容片段;将所述资源的URL、资源大小与所述内容片段拼接成字符串;对所述字符串进行MD5计算以得到所述消重特征。本发明还公开了B7、一种资源离线下载装置,其包括:网络运营商确定模块,适于根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;离线下载服务器选择模块,适于根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择离线下载服务器,其中,所述离线下载服务器用于对资源进行离线下载;任务执行模块,适于将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。B8、如B7所述装置,其中,所述网络运营商确定模块进一步包括:第一获取模块,适于获取与所述资源的统一资源定位符URL对应的域名信息,并解析出与所述域名信息对应的IP地址;第二获取模块,适于根据与所述域名信息对应的IP地址查询数据库以获取与所述IP地址对应的网络运营商并将其确定为所述资源所归属的网络运营商,所述数据库存储有网络运营商及其IP地址。B9、如B7或B8所述的装置,其中,所述任务调控策略为将所述资源的离线下载任务分配给当前负载权值最小的离线下载服务器。B10、如B9所述的装置,其中,所述负载权值为:k1*cpu使用量+k2*磁盘余量+k3*内存余量+k4*带宽资源,其中,所述k1为cpu使用量对应的权值,所述k2为磁盘余量对应的权值,所述k3为内存余量对应的权值,所述k4为带宽资源对应的权值。B11、如B7至B10任一项所述的装置,其中,还包括:消重处理模块,适于:获取所述需要离线下载的资源的消重特征,所述消重特征指所述资源的身份标识且其根据所述资源的URL、大小和内容片段生成;判断所述需要离线下载的资源的消重特征是否与全局消重表中存储的已经离线下载的资源的消重特征相同,以及所述需要离线下载的资源和所述已经离线下载的资源之间的时间间隔是否小于设定时间值,所述全局消重表存储有已经离线下载的资源的消重特征;如果消重特征相同且时间间隔小于设定时间值,则不下载所述需要离线下载的资源;否则,建立所述需要离线下载的资源的离线下载任务。B12、如B11所述的装置,还包括消重特征生成模块,其包括:提取单元,适于提取所述资源的头100k内容、中间随机位置100k内容、尾部100k内容作为资源的内容片段;拼接单元,适于将所述资源的URL、资源大小与所述内容片段拼接成字符串;计算单元,适于对所述字符串进行MD5计算。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1