离线下载的系统及方法技术方案

技术编号:9035981 阅读:158 留言:0更新日期:2013-08-15 02:40
一种离线下载的系统包括下载服务器集群、分发服务器及存储服务器。下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息。下载服务器获取的数据信息储存在存储服务器。分发服务器与所述下载服务器集群通信,可根据下载服务器的实际负载信息生成调度规则,并根据所述调度规则对离线任务进行分配。对于负载程度高的所述下载服务器,只分发少量或是不分发任务,而对于负载程度低的所述下载服务器,则相应的多分发任务。因此,所述下载服务器所分发到的任务与其实时负载程度相关,有效的提高了下载服务器利用率、磁盘空间也得到了充分利用。本发明专利技术还提供一种离线下载的方法。

【技术实现步骤摘要】
离线下载的系统及方法
本专利技术涉及一种互联网技术,特别是涉及一种离线下载的系统及方法。
技术介绍
云端订阅下载,又称为离线下载,本质是下载工具的服务器代替用户先行下载。比如某个资源是冷门资源,下载速度很慢,用户就得下载很久,如果用户使用离线下载技术,就可以让服务商的服务器代替用户下载,用户就可以关掉下载工具或者机器,节约时间和电费。等到离线下载好后,用户再从下载工具的服务器上高速下载到客户端的电脑上。离线下载能省却许多挂机等待的时间,最重要的是能够腾出电脑宽带做其他的事情。以服务器高速代理下载,中转到离线空间,再以用户从离线下载服务器下载到本机的方式提供网络加速服务的离线下载获得了广泛的应用。云端订阅的一般步骤为:用户提交需要下载的文件下载地址;离线任务管理服务器接受用户提交的订阅请求;离线任务管理服务器收到请求后先查询数据库的映射记录,检测服务器端是否已经有下载或者下载完成的对应文件,如果有就直接通知客户端,客户端可以直接从服务器云端下载,同时使用P2SP(点对服务器和点)技术,如果没有合适的文件在服务端匹配到,就将离线下载任务请求发送到离线任务分发服务器;离线任务分发服务器依据下载链接Hash(把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值)的首字节区间进行离线任务的调度,离线下载服务器集群依据URL(Uniform/UniversalResourceLocator,统一资源定位符,也被称为网页地址)开始启动下载,从因特网下载数据;下载完成的数据同时同步到云存储服务器,同时将下载结果写入数据库。在一般云端订阅下载系统中,下载任务分发是按照任务链接Hash首字节区间范围分组,但是用户任务需求和文件大小对应的分布是非常不均匀的,由此造成下载服务器的负载不均匀。下载服务器由于是p2p(点对点)软件的下载,数据来源和写入都是随机的,下载服务器的IO非常容易成为下载系统的瓶颈,目前的方式只是依据下载文件链接Hash进行随机分组,实际的效果依然会导致部分下载服务器的磁盘IO成为系统瓶颈,下载任务需要排队,无法及时完成下载。此外,由于P2P(点对服务器和点)网络自身的特性,服务器端下载具有不确定性,下载是否能够最终完成和什么时候能够下载完成是难以预期的,导致下载服务器磁盘的实际利用和分配情况难以确定。因此,上述传统的离线下载系统下载服务器利用率低、磁盘空间得不到充分利用。
技术实现思路
鉴于上述状况,有必要针对传统的离线下载系统下载服务器利用率低的问题,提供一种离线下载的系统及方法。一种离线下载的系统,包括:下载服务器集群,所述下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息;分发服务器,获得所述离线任务,所述分发服务器与所述下载服务器集群通信,接收所述负载信息并根据所述负载信息生成调度规则,所述分发服务器根据所述调度规则将所述离线任务分发给所述下载服务器;及存储服务器,与所述下载服务器集群通信连接,用于存储所述下载服务器集群获得的所述数据信息,并提供所述数据信息的下载。进一步地,还包括:离线任务数据库,存储所述离线任务的原始连接,所述下载服务器集群与所述离线任务数据库通信连接,并从所述离线任务数据库获取所述离线任务的原始链接,所述下载服务器集群将与下载完成的离线任务对应的数据信息的入口地址写入所述离线任务数据库,并生成映射记录;及离线任务管理器,与所述离线任务数据库及所述分发服务器通信连接,所述离线任务管理器通过所述映射记录判断所述离线任务是否下载完成,若是,则直接提供所述数据信息,否则,为所述离线任务生成唯一编号,且将其原始链接连同所述编号写入所述离线任务数据库,并将所述离线任务提交给所述分发服务器。进一步地,所述下载服务器根据下载协议分为相应类型,所述分发服务器包括任务分类模块,所述任务分类模块将所述离线任务根据下载协议分发给对应类型的所述下载服务器。进一步地,所述分发服务器包括过滤模块,所述过滤模块将所述离线任务与已经存在的离线任务进行比较,将已经存在的所述离线任务过滤。进一步地,所述分发服务器包括:负载调度模块,接收所述负载信息,并根据所述负载信息生成调度规则,所述负载调度模块维护包含所述下载服务器的信息的链表及所述调度规则;及任务分发模块,根据所述调度规则及所述链表中的信息,将所述离线任务分发给所述下载服务器。进一步地,所述负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度,所述调度规则为与所述下载服务器的实时负载成反比例分配所述离线任务,所述实时负载如下式:F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度其中,a、b、c、d、e为0-1之间的权重参数,F表示所述实时负载。进一步地,还包括统计服务器,所述统计服务器获得下载所述离线任务的下载参数,并根据所述下载参数生成流水日志。本专利技术还提供一种离线下载的方法,该方法包括以下步骤:下载服务器根据其负载反馈负载信息;获取离线任务;根据所述下载服务器的所述负载信息生成调度规则,并根据所述调度规则分发所述离线任务;根据所述离线任务从互联网中获取数据信息,并进行存储;提供所述离线任务对应的所述数据信息,完成离线下载。进一步地,所述根据所述离线任务从互联网中获取数据信息,并进行存储的步骤包括:获取所述离线任务的原始链接,根据所述原始链接获取所述数据信息;同步存储所述数据信息,记录所述数据信息存储的入口地址,并生成映射记录。进一步地,在所述根据下载服务器的负载信息生成调度规则,并根据所述调度规则分发所述离线任务的步骤中,包括根据下载协议将所述离线任务分发给相应类型的所述下载服务器的步骤。进一步地,所述根据下载服务器的负载信息生成调度规则,并根据所述调度规则分发所述离线任务的步骤包括:将所述离线任务与已经存在的离线任务进行比较,将已经存在的所述离线任务过滤。进一步地,所述根据下载服务器的负载信息生成调度规则,并根据所述调度规则分发所述离线任务的步骤包括:接收所述负载信息,并根据所述负载信息生成调度规则,维护包含所述下载服务器的信息的链表及所述调度规则;及根据所述调度规则及所述链表中的信息,将所述离线任务分发给所述下载服务器。进一步地,所述负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度,所述调度规则为与所述下载服务器的实时负载成反比例分配所述离线任务,所述实时负载如下式:F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度其中,a、b、c、d、e为0-1之间的权重参数,F表示所述实时负载。进一步地,在所述提供所述离线任务对应的所述数据信息,完成离线下载的步骤之后,还包括获得下载所述离线任务的下载参数,并根据所述下载参数生成流水日志。上述离线下载的系统包括分发服务器,下载服务器将其负载信息实时反馈给所述分发服务器,所述分发服务器根据下载服务器的实际负载信息生成调度规则,并根据所述调度规则对离线任务进行分配。对于负载程度高的所述下载服务器,只分发少量或是不分发任务,而对于负载程度低的所述下载服务器,则相应的多分发任务。因此,所述下载服务器所分发到的任务与其实时负本文档来自技高网
...
离线下载的系统及方法

【技术保护点】
一种离线下载的系统,其特征在于,包括:下载服务器集群,所述下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息;分发服务器,获得所述离线任务,所述分发服务器与所述下载服务器集群通信,接收所述负载信息并根据所述负载信息生成调度规则,所述分发服务器根据所述调度规则将所述离线任务分发给所述下载服务器;及存储服务器,与所述下载服务器集群通信连接,用于存储所述下载服务器集群获得的所述数据信息,并提供所述数据信息的下载。

【技术特征摘要】
1.一种离线下载的系统,其特征在于,包括:下载服务器集群,所述下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息;分发服务器,获得所述离线任务,所述分发服务器与所述下载服务器集群通信,接收所述负载信息并根据所述负载信息生成调度规则,所述分发服务器根据所述调度规则将所述离线任务分发给所述下载服务器;及存储服务器,与所述下载服务器集群通信连接,用于存储所述下载服务器集群获得的所述数据信息,并提供所述数据信息的下载;所述调度规则包括:基于Hash号段,按照下载服务器的能力比率进行调度,在下载服务器的分配比率设置为0时,不再调度任务到该下载服务器进行下载;所述分发服务器包括:过滤模块,将所述离线任务与已经存在的离线任务进行比较,将已经存在的所述离线任务过滤,同一个离线任务只向下载服务器集群发送一次离线任务下载请求,同一个离线任务只发送给一个下载服务器;负载调度模块,接收所述负载信息,并根据所述负载信息生成调度规则,所述负载调度模块维护包含所述下载服务器的信息的链表及所述调度规则;及任务分发模块,根据所述调度规则及所述链表中的信息,将所述离线任务分发给所述下载服务器;所述负载调度模块管理下载服务器的心跳、注销及接收下载服务器的负载信息,接收到心跳包时,查询是否有下载服务器信息,若没有则新插入一个下载服务器信息,并比较新的负载信息是否与原来的负载信息不同,若不同则置标记,并使用双缓冲区的实现方式把下载服务器的信息传给任务分发模块,当负载调度模块把数据写入第一块缓冲区时,任务分发模块读第二块缓冲区的数据,当负载调度模块写完后,任务分发模块开始读第一块缓冲区的数据,负载调度模块转而把数据写入第二块缓冲区;所述负载调度模块在更新时,将下载服务器信息集合中所有数据写入缓冲区中,并在缓冲区中置标记来通知任务分发模块读取数据,所述更新的时机包括:下载服务器的负载信息出现过载信息、下载服务器注销、以及清理完心跳包超时的下载服务器后进行检查的检查结果需要更新。2.如权利要求1所述的离线下载的系统,其特征在于,还包括:离线任务数据库,存储所述离线任务的原始连接,所述下载服务器集群与所述离线任务数据库通信连接,并从所述离线任务数据库获取所述离线任务的原始链接,所述下载服务器集群将与下载完成的离线任务对应的数据信息的入口地址写入所述离线任务数据库,并生成映射记录;及离线任务管理器,与所述离线任务数据库及所述分发服务器通信连接,所述离线任务管理器通过所述映射记录判断所述离线任务是否下载完成,若是,则直接提供所述数据信息,否则,为所述离线任务生成唯一编号,且将其原始链接连同所述编号写入所述离线任务数据库,并将所述离线任务提交给所述分发服务器。3.如权利要求1所述的离线下载的系统,其特征在于,所述下载服务器根据下载协议分为相应类型,所述分发服务器包括任务分类模块,所述任务分类模块将所述离线任务根据下载协议分发给对应类型的所述下载服务器。4.如权利要求1所述的离线下载的系统,其特征在于,所述负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度,所述调度规则为与所述下载服务器的实时负载成反比例分配所述离线任务,所述实时负载如下式:F=a*CPU负载+b*磁盘负载+c*内存负载+d...

【专利技术属性】
技术研发人员:刘刚庄庆
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:

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

1