CN103248636B - 离线下载的系统及方法 - Google Patents
离线下载的系统及方法 Download PDFInfo
- Publication number
- CN103248636B CN103248636B CN201210024477.4A CN201210024477A CN103248636B CN 103248636 B CN103248636 B CN 103248636B CN 201210024477 A CN201210024477 A CN 201210024477A CN 103248636 B CN103248636 B CN 103248636B
- Authority
- CN
- China
- Prior art keywords
- offline
- load
- download server
- task
- download
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 7
- 238000001914 filtration Methods 0.000 claims description 8
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000007689 inspection Methods 0.000 claims 2
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241000283074 Equus asinus Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种离线下载的系统包括下载服务器集群、分发服务器及存储服务器。下载服务器集群包括两个以上下载服务器,所述下载服务器根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息。下载服务器获取的数据信息储存在存储服务器。分发服务器与所述下载服务器集群通信,可根据下载服务器的实际负载信息生成调度规则,并根据所述调度规则对离线任务进行分配。对于负载程度高的所述下载服务器,只分发少量或是不分发任务,而对于负载程度低的所述下载服务器,则相应的多分发任务。因此,所述下载服务器所分发到的任务与其实时负载程度相关,有效的提高了下载服务器利用率、磁盘空间也得到了充分利用。本发明还提供一种离线下载的方法。
Description
【技术领域】
本发明涉及一种互联网技术,特别是涉及一种离线下载的系统及方法。
【背景技术】
云端订阅下载,又称为离线下载,本质是下载工具的服务器代替用户先行下载。比如某个资源是冷门资源,下载速度很慢,用户就得下载很久,如果用户使用离线下载技术,就可以让服务商的服务器代替用户下载,用户就可以关掉下载工具或者机器,节约时间和电费。等到离线下载好后,用户再从下载工具的服务器上高速下载到客户端的电脑上。离线下载能省却许多挂机等待的时间,最重要的是能够腾出电脑宽带做其他的事情。以服务器高速代理下载,中转到离线空间,再以用户从离线下载服务器下载到本机的方式提供网络加速服务的离线下载获得了广泛的应用。
云端订阅的一般步骤为:用户提交需要下载的文件下载地址;离线任务管理服务器接受用户提交的订阅请求;离线任务管理服务器收到请求后先查询数据库的映射记录,检测服务器端是否已经有下载或者下载完成的对应文件,如果有就直接通知客户端,客户端可以直接从服务器云端下载,同时使用P2SP(点对服务器和点)技术,如果没有合适的文件在服务端匹配到,就将离线下载任务请求发送到离线任务分发服务器;离线任务分发服务器依据下载链接Hash(把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值)的首字节区间进行离线任务的调度,离线下载服务器集群依据URL(Uniform/Universal Resource Locator,统一资源定位符,也被称为网页地址)开始启动下载,从因特网下载数据;下载完成的数据同时同步到云存储服务器,同时将下载结果写入数据库。
在一般云端订阅下载系统中,下载任务分发是按照任务链接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为一实施例中离线下载的系统的模块图;
图2为图1所示离线下载的系统下载服务器集群的详细模块图;
图3为图1所示离线下载的系统分发服务器的详细模块图;
图4为一实施例中离线下载的方法的流程图;
图5为图4所示离线下载的方法步骤S230的流程图;
图6为图4所示离线下载的方法步骤S240的流程图。
【具体实施方式】
在离线下载的系统中,分发服务器和实际下载服务器存在数量上的巨大差异,下载服务器随着下载需求的变化而变化,目前的方式通常在分发服务器上通过配置文件来管理下载服务器。不方便下载服务器的扩容部署和升级。一般离线任务分发是按照任务链接Hash首字节区间范围分组,但是用户任务需求和文件大小对应的分布是非常不均匀的,造成下载服务器的负载不均匀。下载服务器由于是p2p(点对点)软件的下载,数据来源和写入都是随机的,下载服务器的IO(输入输出)非常容易成为下载系统的瓶颈,目前的方式只是依据下载文件链接Hash进行随机分组,实际的效果依然会导致部分下载服务器的磁盘IO成为系统瓶颈,但是下载任务排队,无法及时完成下载;由于P2P网络自身的特性,下载是否能够最终完成和什么时候能够下载完成是难以预期的,导致下载服务器磁盘的实际利用和分配情况难以确定,下载任务调度分发的时候难以知道下载服务器磁盘负载的实际情况。
针对上述原因,如图1所示,一实施方式的离线下载的系统100包括下载服务器集群110、分发服务器120及存储服务器130。
如图2所示,下载服务器集群110包括两个以上下载服务器112,所述下载服务器112根据其负载反馈负载信息及根据离线任务从互联网中获取数据信息。下载服务器112根据下载协议分为相应类型。具体在本实施例中,下载协议包括Bt(比特流)、eMule(电驴)及Http(超文本传输)三种形式,相应的,下载服务器112包括三种与上述下载协议匹配的类型。
如图3所示,分发服务器120与下载服务器集群110通信,用于获得离线任务。分发服务器120包括任务分类模块122、过滤模块124、负载调度模块126及任务分发模块128。
任务分类模块122将离线任务根据下载协议分发给对应类型的下载服务器112。例如,支持下载协议Bt的离线任务,任务分类模块122会将其分配给与下载协议Bt对应的下载服务器112,而不会分配给其他类型不适合的下载服务器112,从而避免下载失败。
过滤模块124将离线任务与已经存在的离线任务进行比较,将已经存在的离线任务过滤。即同一个离线任务只向下载服务器集群110发送一次请求,若多个不同的用户发起同一个离线任务下载请求,则这些不同的用户可以共享该共同的离线任务。
负载调度模块126接收下载服务器112反馈的负载信息,并根据负载信息生成调度规则。负载调度模块126维护包含下载服务器112的信息的链表及调度规则。具体到本实施例中,负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度。链表中的元素为下载服务器112的信息,具体包括IP地址、端口(port)、下载服务器标识(serverID)、上次上报时间(lastReportTime)及实时负载。负载调度模块126根据下载服务器112反馈的负载信息对链表进行更新。在本实施例中,下载服务器112以心跳包的形式反馈负载信息,心跳包每隔10秒发送一次,以保证链表中的信息最新。
任务分发模块128根据调度规则及链表中的信息,将离线任务分发给下载服务器112。具体在本实施例中,调度规则为:与下载服务器112的实时负载成反比例分配离线任务。实时负载如下式:
F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度
其中,a、b、c、d、e为0-1之间的权重参数,F表示实时负载。
如图1所示,存储服务器130与下载服务器集群110通信连接,用于存储下载服务器集群110获得的数据信息,并提供数据信息的下载。
离线下载的系统100还包括离线任务数据库140、离线任务管理器150及统计服务器160。
离线任务数据库140存储离线任务的原始连接。下载服务器集群110与离线任务数据库140通信连接,并从离线任务数据库140获取离线任务的原始链接。下载服务器集群110将与下载完成的离线任务对应的数据信息的入口地址写入离线任务数据库140,并生成映射记录。
离线任务管理器150与离线任务数据库140及分发服务器120通信连接。离线任务管理器150通过映射记录判断离线任务是否下载完成,若是,则直接提供数据信息,否则,为离线任务生成唯一编号,且将其原始链接连同编号写入离线任务数据库140,并将离线任务提交给分发服务器120。
统计服务器160获得下载离线任务的下载参数,并根据下载参数生成流水日志。具体在本实施例中,下载参数包括下载过程中的URL(网页地址)下载速度、下载时间、连通情况、下载结果及文件大小。生成的流水日志供日后统计分析。
离线下载的系统100的功能实现过程:
负载调度模块126管理下载服务器112的心跳、注销及收取其负载信息。负载调度模块126使用双缓冲区(buffer)的实现方式把下载服务器112的信息传给任务分发模块128。当负载调度模块126把数据写入第一块buffer时,任务分发模块128读第二块buffer的数据。当负载调度模块126写完后,任务分发模块128开始读第一块buffer的数据,负载调度模块126转而把数据写入第二块buffer。负载调度模块126维护一个链表,链表中每个元素为下载服务器112的信息,包括IP地址、端口(port)、下载服务器标识(server ID)、上次上报时间(lastReportTime)及实时负载,其中serverID为64位无符号的整型,高字节为IP,低字节为port。同时再对链表的元素做hash索引,key(关键码)为serverID。这样既可以保持遍历顺序,又可以快速索引到某个元素。
下载服务器112向负载调度模块126发起心跳,上报负载信息:
下载服务器112向负载调度模块126发起心跳,同时把负载信息携带在心跳包中。心跳包每10秒钟一次。当负载调度模块126收到心跳包,查询下载服务器信息集合(serverInfoSet)中是否有下载服务器信息(serverInfo)。若没有则新插入一个下载服务器信息(serverInfo)。比较新的负载信息是否和原来的是否不同。若不同则需要置标记,说明有不同的负载信息,在下次和任务分发模块128通信时需使其更新。若出现过载信息(如磁盘负载大于85%,磁盘空间,CPU,内存,并行队列长度,等待队列长度超过阈值),需要立即通知任务分发模块128。
下载服务器112向负载调度模块126注销:
当负载调度模块126收到下载机注销请求,把此下载服务器的下载服务器信息从下载服务器信息集合中删除,置标记需要更新共享内存,并立即通知任务分发模块128。
下载服务器112心跳包超时:
负载调度模块126每隔十秒会遍历一次下载服务器信息集合,把心跳包超时的下载服务器112从下载服务器信息集合中删除,置标记需要更新。
负载调度模块126和任务分发模块128通信:
负载调度模块126在更新时把下载服务器信息集合中所有数据写入buffer中,然后在buffer中以置标记来通知任务分发模块128读取数据。更新的时机除了下载服务器112负载信息出现过载信息和下载机注销两种情况下,还有一种情况:每隔10秒,在清理完心跳包超时的下载服务器112后,会检查是否需要更新,需要更新则通知任务分发模块128。所以在正常情况下,负载调度模块126和任务分发模块128每10秒通信一次。任务分发模块128在主循环中每次会检查buffer中的标记,若标记为真(true),则从buffer中读取出下载服务器112信息。
具体调度实现:
基于Hash号段,按照下载服务器112的能力比率调度,如果某台下载服务器112分配比率设置为0,不再调度任务到该台服务器下载。当前方案按照下载链接Hash首字节分配:0-255,现在有4台下载服务器A、B、C、D。
默认调度分配就是随机瓶颈A分配(0-255)的25%,B,C,D分配的一样,对应的规则就是:
如果这个时候有第5台下载服务器112,机器(E)注册进来,在不考虑其负载权重的情况下,每台下载服务器112分配的负载是20%,那么对应的规则就变成
当其中某一台下载服务器112的心跳包超时,发生反注册。就不再向这台下载服务器112添加新的下载任务,上述5台机器退化到4台。此时负载调度模块126根据负载信息计算下载服务器112实时负载,并更新其维护的链表。任务分发模块128从负载调度模块126读取链表信息,并根据调度规则进行任务调度。实时负载如下式:
F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度
其中,a、b、c、d、e为0-1之间的权重参数,F表示实时负载。
下载服务器都会按照同样的规则上报一个值给任务分发模块128,值的大小标识这个服务器当前的负载能力,值越大表示当前的负载能力越小。任务分发模块128按照每台下载服务器当前的负载能力来成比例调度,如果当前的负载能力为0,就不会有任务调度到该下载服务器上。
如图4所示,本发明还提供一种离线下载的方法,该离线下载的方法包括步骤S210~S250:
步骤S210:下载服务器112根据其负载反馈负载信息。具体在本实施例中,负载信息包括负载信息包括CPU负载、磁盘负载、内存负载、并行队列长度及等待队列长度。下载服务器112以心跳包的形式反馈负载信息,心跳包每隔10秒发送一次。可以理解,负载信息不限于上述几项,可根据下载服务器的实际情况选择相应的参数作为负载信息。另外,心跳包的发送的时间间隔不限于10秒,间隔越短,负载信息的更新越快,但在一定的范围内均能达到要求。
步骤S220:获取离线任务。离线任务一般由用户在使用离线下载的系统时提供,离线任务包含视频、音频及文字等各种类型。根据目前主流的下载协议,离线任务可分为基于Bt、eMule及Http的三种类型。
步骤S230:根据下载服务器的负载信息生成调度规则,并根据调度规则分发离线任务。
如图5所示,在本实施例中,步骤S230的具体过程为:
步骤S310:将离线任务与已经存在的离线任务进行比较,将已经存在的离线任务过滤。即同一个离线任务只向下载服务器集群110发送一次请求,若多个不同的用户发起同一个离线任务下载请求,则这些不同的用户可以共享该共同的离线任务。
步骤S320:根据下载协议将离线任务分发给相应类型的所述下载服务器。如步骤S220所提到的,获取的离线任务包括基于Bt、eMule及Http下载协议的三种类型。需要将不同类型的离线任务分发给对应类型的下载服务器112,才能保证下载不出错。
步骤S330:接收所述负载信息,并根据负载信息生成调度规则,维护包含了每个所述下载服务器的信息的链表及调度规则。链表中的元素为下载服务器112的信息,具体包括IP地址、端口(port)、下载服务器标识(server ID)、上次上报时间(lastReportTime)及实时负载。并且链表根据下载服务器112反馈的负载信息对链表进行更新。具体在本实施例中,调度规则为:与下载服务器的实时负载成反比例分配离线任务。
实时负载如下式:
F=a*CPU负载+b*磁盘负载+c*内存负载+d*并行队列长度+e*等待队列长度
其中,a、b、c、d、e为0-1之间的权重参数,F表示所述实时负载。
步骤S340:根据调度规则及链表中的信息,将离线任务分发给下载服务器112。读取链表中的数据,获得通过注册的下载服务器112的信息,根据每个下载服务器112的实时负载分配离线任务。具体过程为:通过遍历链表中的信息,获得每个下载服务器112的实时负载,通过调度规则计算每个下载服务器应分配的离线任务,将计算结果与下载服务器112的IP对应,然后根据下载服务器112的IP地址,准确的将离线下载任务分发到下载服务器112。
步骤S240:根据离线任务从互联网中获取数据信息,并进行存储。当下载服务器获得离线任务后,便可从互联网中获取数据,获取完数据后,由于用户不能立即取走,而且为了后续避免重复下载,故需存储。
如图6所示,在本实施例中,步骤S240的具体过程为:
步骤S410:获取离线任务的原始链接,根据原始链接获取数据信息。每一个离线任务都有一个原始链接,在获取离线任务时,为离线任务分配唯一编号,并将编号及原始链接存储于数据库中。下载服务器112分配得到离线任务后,就根据离线任务的编号在数据库中查找对应的原始链接。
步骤S420:同步存储数据信息,记录数据信息存储的入口地址,并生成映射记录。当离线任务下载完成后,其对应的数据信息将会存储于存储服务器130中,为了方便查找数据信息,每个下载完成的数据信息都具有唯一的索引,具体在本实施例中为Hash结果。
步骤S250:提供离线任务对应的数据信息,完成离线下载。当用户需要下载离线任务对应的数据信息,首先通过索引及Hash结果查找到该数据信息,然后读取该数据信息存储的入口地址,并反馈给用户,用户根据该入口地址就能够下载到所需要的数据信息。
另外,在完成离线下载的步骤之后,还包括获得下载离线任务的下载参数,并根据所述下载参数生成流水日志的步骤。具体在本实施例中,下载参数包括下载过程中的URL下载速度、下载时间、连通情况、下载结果及文件大小。需要指出的是,该步骤只是为了生成的流水日志供日后统计分析。对于完成离线下载没有影响。
上述离线下载的方法的具体实现过程与离线下载的系统100的功能实现过程相似,这里不再赘述。
离线下载的系统100包括分发服务器120,下载服务器112将其负载信息反馈给分发服务器120,分发服务器120根据下载服务器112的实际负载信息生成调度规则,并根据调度规则对离线任务进行分配。对于负载程度高的下载服务器112,只分发少量或是不分发任务,而对于负载程度低的下载服务器112,则相应的多分发任务。因此,下载服务器112所分发到的任务与其实时负载程度相关,有效的提高了下载服务器112利用率、磁盘空间也得到了充分利用。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
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之间的权重参数,F表示所述实时负载。
10.如权利要求6所述的离线下载的方法,其特征在于,在所述提供所述离线任务对应的所述数据信息,完成离线下载的步骤之后,还包括获得下载所述离线任务的下载参数,并根据所述下载参数生成流水日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210024477.4A CN103248636B (zh) | 2012-02-03 | 2012-02-03 | 离线下载的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210024477.4A CN103248636B (zh) | 2012-02-03 | 2012-02-03 | 离线下载的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103248636A CN103248636A (zh) | 2013-08-14 |
CN103248636B true CN103248636B (zh) | 2018-06-15 |
Family
ID=48927858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210024477.4A Active CN103248636B (zh) | 2012-02-03 | 2012-02-03 | 离线下载的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103248636B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991699B (zh) * | 2015-02-06 | 2019-07-19 | 北京中搜云悦网络技术有限公司 | 一种互联网爬虫的分布式下载系统 |
CN104954277B (zh) * | 2015-06-17 | 2018-11-06 | 深圳市创梦天地科技有限公司 | 一种负载均衡方法、网关服务器及相关系统 |
CN105391805A (zh) * | 2015-12-21 | 2016-03-09 | 天津海量信息技术有限公司 | 基于多客户端集群协作的数据下载系统及下载方法 |
CN110928673A (zh) * | 2018-09-20 | 2020-03-27 | 北京国双科技有限公司 | 任务的分配方法及装置 |
CN109614121A (zh) * | 2018-12-06 | 2019-04-12 | 郑州云海信息技术有限公司 | 一种中背板sas地址烧录实现方法及系统 |
CN112188016B (zh) * | 2020-10-20 | 2022-05-10 | 浙江百应科技有限公司 | 一种基于坐席状态的外呼任务自动调整方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164160A (zh) * | 2010-12-31 | 2011-08-24 | 青岛海信传媒网络技术有限公司 | 支持大并发量文件下载的方法、装置及系统 |
CN102238137A (zh) * | 2010-04-27 | 2011-11-09 | 腾讯科技(深圳)有限公司 | 一种下载方法、系统和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006285601A (ja) * | 2005-03-31 | 2006-10-19 | Fujitsu Ltd | ファイル配信方法とそれを実現するクライアント端末 |
-
2012
- 2012-02-03 CN CN201210024477.4A patent/CN103248636B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238137A (zh) * | 2010-04-27 | 2011-11-09 | 腾讯科技(深圳)有限公司 | 一种下载方法、系统和装置 |
CN102164160A (zh) * | 2010-12-31 | 2011-08-24 | 青岛海信传媒网络技术有限公司 | 支持大并发量文件下载的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103248636A (zh) | 2013-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103248636B (zh) | 离线下载的系统及方法 | |
CN104969213B (zh) | 用于低延迟数据存取的数据流分割 | |
CN110430274A (zh) | 一种基于云存储的文件下载方法及系统 | |
CN103108008B (zh) | 一种下载文件的方法及文件下载系统 | |
CN109885410A (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN109491758A (zh) | docker镜像分发方法、系统、数据网关及计算机可读存储介质 | |
CN101997924A (zh) | 云存储文件传输协议(cftp) | |
CN108463988A (zh) | 负载均衡的网络文件访问 | |
CN103095853B (zh) | 云数据中心计算能力管理系统 | |
KR101867286B1 (ko) | 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법 | |
CN103248666A (zh) | 一种离线下载资源的系统、方法及装置 | |
CN107819891A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN104092756A (zh) | 一种基于dht机制的云存储系统的资源动态分配方法 | |
CN106254561A (zh) | 一种网络资源文件的实时离线下载方法及系统 | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
CN103577251A (zh) | 基于事件的互联网计算处理系统及方法 | |
CN107404541A (zh) | 一种对等网络传输邻居节点选择的方法及系统 | |
CN107241305A (zh) | 一种基于多核处理器的网络协议分析系统及其分析方法 | |
CN103812881B (zh) | 离线下载控制方法及装置 | |
CN110910143A (zh) | 身份标识生成方法、装置、相关节点及介质 | |
CN110149374A (zh) | 一种文件传输方法、终端设备及计算机可读存储介质 | |
CN106940712A (zh) | 序列生成方法与设备 | |
CN112019689B (zh) | 来电秀业务处理系统及方法 | |
WO2010018637A1 (ja) | 業務フロー分散処理システム及び方法 | |
CN105989065A (zh) | 一种闪拍数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |