[发明专利]离线下载的系统及方法有效
申请号: | 201210024477.4 | 申请日: | 2012-02-03 |
公开(公告)号: | CN103248636B | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 刘刚;庄庆 | 申请(专利权)人: | 深圳市腾讯计算机系统有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;曾旻辉 |
地址: | 518057 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种离线下载的系统包括下载服务器集群、分发服务器及存储服务器。下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息。下载服务器获取的数据信息储存在存储服务器。分发服务器与所述下载服务器集群通信,可根据下载服务器的实际负载信息生成调度规则,并根据所述调度规则对离线任务进行分配。对于负载程度高的所述下载服务器,只分发少量或是不分发任务,而对于负载程度低的所述下载服务器,则相应的多分发任务。因此,所述下载服务器所分发到的任务与其实时负载程度相关,有效的提高了下载服务器利用率、磁盘空间也得到了充分利用。本发明还提供一种离线下载的方法。 1 | ||
搜索关键词: | 下载服务器 离线 下载服务器集群 分发 下载 存储服务器 分发服务器 调度规则 磁盘空间 负载反馈 负载信息 获取数据 实际负载 实时负载 数据信息 信息生成 储存 互联网 分配 通信 | ||
下载服务器集群,所述下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息;
分发服务器,获得所述离线任务,所述分发服务器与所述下载服务器集群通信,接收所述负载信息并根据所述负载信息生成调度规则,所述分发服务器根据所述调度规则将所述离线任务分发给所述下载服务器;及
存储服务器,与所述下载服务器集群通信连接,用于存储所述下载服务器集群获得的所述数据信息,并提供所述数据信息的下载;
所述调度规则包括:基于Hash号段,按照下载服务器的能力比率进行调度,在下载服务器的分配比率设置为0时,不再调度任务到该下载服务器进行下载;
所述分发服务器包括:
过滤模块,将所述离线任务与已经存在的离线任务进行比较,将已经存在的所述离线任务过滤,同一个离线任务只向下载服务器集群发送一次离线任务下载请求,同一个离线任务只发送给一个下载服务器;
负载调度模块,接收所述负载信息,并根据所述负载信息生成调度规则,所述负载调度模块维护包含所述下载服务器的信息的链表及所述调度规则;及任务分发模块,根据所述调度规则及所述链表中的信息,将所述离线任务分发给所述下载服务器;
所述负载调度模块管理下载服务器的心跳、注销及接收下载服务器的负载信息,接收到心跳包时,查询是否有下载服务器信息,若没有则新插入一个下载服务器信息,并比较新的负载信息是否与原来的负载信息不同,若不同则置标记,并使用双缓冲区的实现方式把下载服务器的信息传给任务分发模块,当负载调度模块把数据写入第一块缓冲区时,任务分发模块读第二块缓冲区的数据,当负载调度模块写完后,任务分发模块开始读第一块缓冲区的数据,负载调度模块转而把数据写入第二块缓冲区;
所述负载调度模块在更新时,将下载服务器信息集合中所有数据写入缓冲区中,并在缓冲区中置标记来通知任务分发模块读取数据,所述更新的时机包括:下载服务器的负载信息出现过载信息、下载服务器注销、以及清理完心跳包超时的下载服务器后进行检查的检查结果需要更新。
2.如权利要求1所述的离线下载的系统,其特征在于,还包括:离线任务数据库,存储所述离线任务的原始连接,所述下载服务器集群与所述离线任务数据库通信连接,并从所述离线任务数据库获取所述离线任务的原始链接,所述下载服务器集群将与下载完成的离线任务对应的数据信息的入口地址写入所述离线任务数据库,并生成映射记录;及
离线任务管理器,与所述离线任务数据库及所述分发服务器通信连接,所述离线任务管理器通过所述映射记录判断所述离线任务是否下载完成,若是,则直接提供所述数据信息,否则,为所述离线任务生成唯一编号,且将其原始链接连同所述编号写入所述离线任务数据库,并将所述离线任务提交给所述分发服务器。
3.如权利要求1所述的离线下载的系统,其特征在于,所述下载服务器根据下载协议分为相应类型,所述分发服务器包括任务分类模块,所述任务分类模块将所述离线任务根据下载协议分发给对应类型的所述下载服务器。4.如权利要求1所述的离线下载的系统,其特征在于,所述负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度,所述调度规则为与所述下载服务器的实时负载成反比例分配所述离线任务,所述实时负载如下式:F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度
其中,a、b、c、d、e为0‑1之间的权重参数,F表示所述实时负载。
5.如权利要求1所述的离线下载的系统,其特征在于,还包括统计服务器,所述统计服务器获得下载所述离线任务的下载参数,并根据所述下载参数生成流水日志。6.一种离线下载的方法,其特征在于,包括以下步骤:下载服务器根据其负载反馈负载信息;
获取离线任务;
根据所述下载服务器的所述负载信息生成调度规则,并根据所述调度规则分发所述离线任务;
根据所述离线任务从互联网中获取数据信息,并进行存储;
提供所述离线任务对应的所述数据信息,完成离线下载;
所述调度规则包括:基于Hash号段,按照下载服务器的能力比率进行调度,在下载服务器的分配比率设置为0时,不再调度任务到该下载服务器进行下载;
根据所述下载服务器的所述负载信息生成调度规则,并根据所述调度规则分发所述离线任务的步骤包括:
将所述离线任务与已经存在的离线任务进行比较,将已经存在的所述离线任务过滤,同一个离线任务只向下载服务器集群发送一次离线任务下载请求,同一个离线任务只发送给一个下载服务器;
接收所述负载信息,并根据所述负载信息生成调度规则,维护包含所述下载服务器的信息的链表及所述调度规则;及
根据所述调度规则及所述链表中的信息,将所述离线任务分发给所述下载服务器,同一个离线任务只发送给一个下载服务器;
管理下载服务器的心跳、注销及接收下载服务器的负载信息,接收到心跳包时,查询是否有下载服务器信息,若没有则新插入一个下载服务器信息,并比较新的负载信息是否与原来的负载信息不同,若不同则置标记,并使用双缓冲区的实现方式实现基于下载服务器的信息分发离线任务,当把数据写入第一块缓冲区时,读第二块缓冲区的数据,当写入第一缓冲区的数据写完后,开始读第一块缓冲区的数据,转而把数据写入第二块缓冲区;
在更新时,将下载服务器信息集合中所有数据写入缓冲区中,并在缓冲区中置标记来通知任务分发模块读取数据,所述更新的时机包括:下载服务器的负载信息出现过载信息、下载服务器注销、以及清理完心跳包超时的下载服务器后进行检查的检查结果需要更新。
7.如权利要求6所述的离线下载的方法,其特征在于,所述根据所述离线任务从互联网中获取数据信息,并进行存储的步骤包括:获取所述离线任务的原始链接,根据所述原始链接获取所述数据信息;
同步存储所述数据信息,记录所述数据信息存储的入口地址,并生成映射记录。
8.如权利要求6所述的离线下载的方法,其特征在于,在所述根据下载服务器的负载信息生成调度规则,并根据所述调度规则分发所述离线任务的步骤中,包括根据下载协议将所述离线任务分发给相应类型的所述下载服务器的步骤。9.如权利要求6所述的离线下载的方法,其特征在于,所述负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度,所述调度规则为与所述下载服务器的实时负载成反比例分配所述离线任务,所述实时负载如下式:F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度
其中,a、b、c、d、e为0‑1之间
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市腾讯计算机系统有限公司,未经深圳市腾讯计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210024477.4/,转载请声明来源钻瓜专利网。
- 上一篇:甲醇贮存罐甲醇废气净化装置
- 下一篇:一种用于双氧水鼓泡系统的空气过滤装置