著录项信息
专利名称 | 支持大并发量文件下载的方法、装置及系统 |
申请号 | CN201010624817.8 | 申请日期 | 2010-12-31 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2011-08-24 | 公开/公告号 | CN102164160A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 青岛海信传媒网络技术有限公司 | 申请人地址 | 山东省青岛市崂山区松岭路399号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 聚好看科技股份有限公司 | 当前权利人 | 聚好看科技股份有限公司 |
发明人 | 徐延霞;张帅;谭巍;马宇坚;汤立辉 |
代理机构 | 北京中博世达专利商标代理有限公司 | 代理人 | 申健 |
摘要
本发明公开了一种支持大并发量文件下载的方法、装置及系统,涉及计算机通信领域,降低大并发量下载对服务器造成的下载压力。一种支持大并发量文件下载的方法,包括:下载控制服务器接收客户端的下载服务器查询请求消息;根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件。本发明实施例用于提供文件下载的计算机网络,缓解了大并发量文件下载时服务器的处理瓶颈问题。
1.一种支持大并发量文件下载的方法,其特征在于,下载控制服务器中维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间,所述方法包括:
所述下载控制服务器接收客户端的下载服务器查询请求消息;
根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;
记录所述请求文件的大小;
若存在所述请求文件,则查询所述请求文件是否已在下载服务器的缓存中;
A:若所述请求文件已在下载服务器的缓存中,则从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;B:若所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数,则从下载控制服务器的下载服务器列表中选择处于在线状态并且客户端连接数小于既定最大连接数的下载服务器的集合,并在所述下载服务器的集合中,选择可用内存容量大于请求文件大小的一组下载服务器,然后在所述选择出的一组下载服务器中,选择出连接数最少的一个下载服务器,最后将所述选择出的一个下载服务器的下载方式设置为缓存下载,并将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表;
将根据A或B获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;
在将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表后,所述方法还包括:
根据所述文件的标识和所述下载服务器的地址在已缓存文件列表中查找是否存在所述文件的记录;如果查找到所述文件的记录,将所述文件的被请求次数加1,将最后一次请求时间更新为当前时间;如果未查找到所述文件的记录,则向所述下载服务器的地址发送带有所述文件的标识和文件大小的增加缓存文件消息;发送所述增加缓存文件消息后,在已缓存文件列表中添加所述文件的记录,包括记录文件大小、记录所述下载服务器的地址、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果在所述下载服务器的集合中,不存在可用内存容量大于请求文件大小的下载服务器,则在所述下载服务器集合中选择出连接数最少的一个下载服务器;
将所述选择出的一个下载服务器的下载方式设置为普通下载,并将所述下载方式设置为普通下载的文件的标识和文件大小发送给未缓存文件列表。
3.根据权利要求2所述的方法,其特征在于,将所述下载方式设置为普通下载的文件的标识和文件大小发送给未缓存文件列表后,还包括:
根据所述文件的标识在未缓存文件列表中查找是否存在所述文件的记录;
如果查找到所述文件的记录,将所述文件的被请求次数加1,将最后一次请求时间更新为当前时间;
如果未查找到所述文件的记录,则在未缓存文件列表中添加所述文件的记录,包括记录文件大小、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
定期检查已缓存文件列表和未缓存文件列表,将近期没有下载请求的文件的记录从已缓存文件列表和未缓存文件列表中删除;
对进行普通下载的文件分配可提供缓存下载的下载服务器。
5.根据权利要求4所述的方法,所述将近期没有下载请求的文件的记录从已缓存文件列表和未缓存文件列表中删除包括:
逐个访问未缓存文件列表的文件记录,检查当前时间与每个文件记录中的最后一次请求时间的差值是否超过1分钟;
如果当前时间与所述文件记录的最后一次请求时间的差值超过1分钟,从未缓存文件列表中删除所述文件记录;
检查完未缓存文件列表的全部文件记录后,再逐个访问已缓存文件列表的文件记录,检查当前时间与已缓存文件列表的每个文件记录中的最后一次请求时间的差值是否超过1分钟;
如果当前时间与所述已缓存文件列表的文件记录的最后一次请求时间的差值超过1分钟,向为所述已缓存文件列表的文件提供缓存的下载服务器发送删除缓存文件消息;
所述提供缓存的下载服务器返回删除成功的消息后,将被删除文件的记录从已缓存文件列表中删除;
所述对进行普通下载的文件分配可用的下载服务器进行缓存下载包括:
将未缓存文件列表中的文件记录按被请求次数从多到少进行排序;
从被请求次数最多的文件开始,针对所有未缓存文件列表中的文件记录,查找是否有符合缓存下载要求的下载服务器;
如果检测到所述符合缓存下载要求的下载服务器,则将对应的请求文件的记录加入已缓存文件列表并将所述对应的请求文件的记录从未缓存文件列表删除。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收新的下载服务器的注册,将所述新的下载服务器的信息记录到下载服务器列表;
接收所有下载服务器的状态信息,所述下载服务器的状态信息包括:所述下载服务器的地址、连接数、可用内存;所述下载控制服务器接收所述状态信息后,更新下载服务器列表中记录的所述下载服务器的连接数、可用内存,如果接收到处于离线状态的下载服务器的状态信息,将所述处于离线状态的下载服务器设置为在线状态;
周期性检查所有下载服务器,将状态异常的下载服务器设置为离线状态。
7.一种支持大并发量文件下载的装置,其特征在于,下载控制服务器中维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间,所述装置包括:
服务器请求接收单元,用于接收客户端的下载服务器查询请求消息;
服务器获取单元,用于根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;
服务器请求返回单元,用于将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;
所述服务器获取单元,还包括:
第一查询模块,用于根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;
第一记录模块,用于记录所述请求文件的大小;
第二查询模块,用于当文件服务器中存在所述请求文件时,查询所述请求文件是否已在下载服务器的缓存中;
第一选择模块,用于当所述请求文件已在下载服务器的缓存时,获取缓存有所述请求文件的下载服务器,并从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;
第二选择模块,用于当所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数时,从下载控制服务器所管辖的所有下载服务器中,选取一个处于在线状态的下载服务器;
所述第二选择模块,还包括:
第一选择子模块,用于从下载控制服务器的下载服务器列表中选择处于在线状态并且客户端连接数小于既定最大连接数的下载服务器的集合;
第二选择子模块,用于在所述下载服务器的集合中,选择可用内存容量大于请求文件大小的一组下载服务器;
第三选择子模块,用于在所述选择出的一组下载服务器中,选择出连接数最少的一个下载服务器;
第一下载设置子模块,用于将所述第一选择模块或所述第二选择模块选择出的一个下载服务器的下载方式设置为缓存下载,并将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表;
所述装置还包括:
已缓存文件查找单元,用于根据与所述第二选择模块对应的所述文件的标识和所述下载服务器的地址在已缓存文件列表中查找是否存在所述文件的记录;
已缓存文件更新单元,用于在查找到所述文件的记录时,将所述文件的被请求次数加
1,将最后一次请求时间更新为当前时间;
新缓存消息发送单元,用于在未查找到所述文件的记录时,向所述下载服务器的地址发送带有所述文件的标识和文件大小的增加缓存文件消息;
第一文件添加单元,用于在发送所述增加缓存文件消息后,在已缓存文件列表中添加所述文件的记录,包括记录文件大小、记录所述下载服务器的地址、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。
8.根据权利要求7所述的装置,其特征在于,如果在所述下载服务器的集合中,不存在可用内存容量大于请求文件大小的下载服务器,则还包括:
第四选择子模块,用于在所述下载服务器集合中选择出连接数最少的一个下载服务器;
第二下载设置子模块,用于将所述选择出的一个下载服务器的下载方式设置为普通下载,并将所述下载方式设置为普通下载的文件的标识和文件大小发送给未缓存文件列表。
9.根据权利要求8所述的装置,其特征在于,将所述下载方式设置为普通下载的文件的标识和文件大小发送给未缓存文件列表后,还包括:
未缓存文件查找单元,用于根据所述文件的标识在未缓存文件列表中查找是否存在所述文件的记录;
未缓存文件更新单元,用于在查找到所述文件的记录时,将所述文件的被请求次数加
1,将最后一次请求时间更新为当前时间;
第二文件添加单元,用于在未查找到所述文件的记录时,则在未缓存文件列表中添加所述文件的记录,包括记录文件大小、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。
10.根据权利要求7或8所述的装置,其特征在于,还包括:
文件删除控制单元,用于定期检查已缓存文件列表和未缓存文件列表,将近期没有下载请求的文件的记录从已缓存文件列表和未缓存文件列表中删除;
缓存下载分配单元,用于对进行普通下载的文件分配可提供缓存下载的下载服务器。
11.根据权利要求7所述的装置,其特征在于,还包括:
服务器注册单元,用于接收新的下载服务器的注册,将所述新的下载服务器的信息记录到下载服务器列表;
状态接收控制单元,用于接收所有下载服务器的状态信息,所述下载服务器的状态信息包括:所述下载服务器的地址、连接数、可用内存;所述下载控制服务器接收所述状态信息后,更新下载服务器列表中记录的所述下载服务器的连接数、可用内存并在接收到处于离线状态的下载服务器的状态信息时,将所述处于离线状态的下载服务器设置为在线状态;
状态周期检查单元,周期性检查所有下载服务器,将状态异常的下载服务器设置为离线状态。
12.一种支持大并发量文件下载的系统,其特征在于,包括:
客户端,用于向下载控制服务器发送下载服务器查询请求消息,所述下载服务器查询请求消息中携带需下载文件的标识;
下载控制服务器,用于接收客户端的下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,选择一个下载服务器;将所述选择的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;
其中,所述依据缓存文件分布和下载服务器的负载情况,获取下载服务器,包括:
根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;
记录所述请求文件的大小;
若存在所述请求文件,则查询所述请求文件是否已在下载服务器的缓存中;
若所述请求文件已在下载服务器的缓存中,则从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;
若所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数,则从下载控制服务器的下载服务器列表中选择处于在线状态并且客户端连接数小于既定最大连接数的下载服务器的集合,并在所述下载服务器的集合中,选择可用内存容量大于请求文件大小的一组下载服务器,然后在所述选择出的一组下载服务器中,选择出连接数最少的一个下载服务器,最后将所述选择出的一个下载服务器的下载方式设置为缓存下载,并将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表;
所述客户端还用于在接收到下载控制服务器返回的下载服务器地址后,向所述返回的下载服务器地址发起文件下载请求消息;
所述下载控制服务器中还维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;
所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;
所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;
所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间;
在将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表后,所述下载控制服务器还用于:
根据所述文件的标识和所述下载服务器的地址在已缓存文件列表中查找是否存在所述文件的记录;如果查找到所述文件的记录,将所述文件的被请求次数加1,将最后一次请求时间更新为当前时间;如果未查找到所述文件的记录,则向所述下载服务器的地址发送带有所述文件的标识和文件大小的增加缓存文件消息;发送所述增加缓存文件消息后,在已缓存文件列表中添加所述文件的记录,包括记录文件大小、记录所述下载服务器的地址、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。
13.根据权利要求12所述的系统,其特征在于,所述系统还包括:
下载服务器,用于在接收所述客户端的文件下载请求消息后,向所述客户端提供文件的缓存下载或普通下载。
14.根据权利要求13所述的系统,其特征在于,所述下载服务器还用于将自身的状态信息发送给所述下载控制服务器;
所述下载服务器的状态信息包括:所述下载服务器的地址、连接数、可用内存;
所述下载控制服务器接收所述状态信息后,更新下载服务器列表中记录的所述下载服务器的连接数、可用内存,如果所述发送状态信息的下载服务器处于离线状态,则所述下载控制服务器将下载服务器列表中记录的所述下载服务器的状态更改为在线状态。
15.根据权利要求14所述的系统,其特征在于,所述下载服务器根据所述下载控制服务器发送的增加缓存文件消息和删除缓存文件消息,在内存中增加缓存文件或删除缓存文件。
16.根据权利要求12所述的系统,其特征在于,所述下载控制服务器还用于:
接收新加入的下载服务器的注册;
所述新加入的下载服务器向所述下载控制服务器发出注册消息,所述注册消息包含所述新加入的下载服务器的地址、可用内存;所述下载控制服务器接收所述注册消息并将所述新加入的下载服务器加入下载服务器列表中。
17.根据权利要求12所述的系统,其特征在于,所述下载控制服务器为某请求文件获取到一个新的下载服务器时,还对下载方式进行选择;
若下载方式选择为缓存下载,则所述下载控制服务器向所述新的下载服务器发送增加缓存文件消息;
所述下载服务器接收所述增加缓存文件消息后,为所述某请求文件分配缓存空间。
支持大并发量文件下载的方法、装置及系统\n技术领域\n[0001] 本发明涉及计算机通信领域,尤其涉及在网络中支持大并发量文件下载的方法、装置及系统。\n背景技术\n[0002] 随着计算机网络技术的发展,通过网络共享的各种文件越来越多,提供应用的服务器中存储了大量的应用文件以供用户进行下载。常见的网络文件传输方式主要为C/S(client/server,客户端/服务器)模式,当出现热门文件或是提供升级服务的系统在发布新的升级文件时,用户终端会集中在短时间内下载升级文件,造成服务器的并发下载压力。\n为缓解服务器的大并发量下载压力,常使用增加新的服务器的方式来满足下载需求,减轻大并发量下载压力。现有技术还提供一种通过缓存方式提高下载速度以减轻大并发量下载压力的方案,通过缓存技术,将文件存入服务器的缓存,当大量用户下载文件时,直接访问服务器的缓存,而不必频繁对文件服务器硬盘进行读取访问,以提高下载的速度。\n[0003] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:\n[0004] 使用增加新的服务器的方式来缓解大并发量下载压力,当服务器数量较多时,对于提供下载服务的多台服务器缺乏有效的综合管理和负载分配机制,因而不能满足并发下载量持续增加的要求。\n[0005] 在使用缓存技术的方案中,当服务器中有大量文件的缓存时,由于缺乏对被缓存文件的管理调节,在并发下载量继续增加时仍会出现并发下载压力。\n发明内容\n[0006] 本发明的实施例提供一种支持大并发量文件下载的方法、装置、系统,能进一步降低大并发量下载对服务器造成的下载压力。\n[0007] 为达到上述目的,本发明的实施例采用如下技术方案:\n[0008] 一种支持大并发量文件下载的方法,包括:\n[0009] 下载控制服务器接收客户端的下载服务器查询请求消息;\n[0010] 根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;\n[0011] 将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;\n[0012] 其中,所述根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载,获取下载服务器,包括:\n[0013] 根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;\n[0014] 记录所述请求文件的大小;\n[0015] 若存在所述请求文件,则查询所述请求文件是否已在下载服务器的缓存中;\n[0016] 若所述请求文件已在下载服务器的缓存中,则从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;\n[0017] 若所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数,则从下载控制服务器所管辖的所有下载服务器中选取一个处于在线状态的下载服务器;\n[0018] 所述下载控制服务器中还维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;\n[0019] 所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;\n[0020] 所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;\n[0021] 所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间。\n[0022] 一种支持大并发量文件下载的装置,包括:\n[0023] 服务器请求接收单元,用于接收客户端的下载服务器查询请求消息;\n[0024] 服务器获取单元,用于根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;\n[0025] 服务器请求返回单元,用于将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;\n[0026] 所述服务器获取单元,还包括:\n[0027] 第一查询模块,用于根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;\n[0028] 第一记录模块,用于记录所述请求文件的大小;\n[0029] 第二查询模块,用于当文件服务器中存在所述请求文件时,查询所述请求文件是否已在下载服务器的缓存中;\n[0030] 第一选择模块,用于当所述请求文件已在下载服务器的缓存时,获取缓存有所述请求文件的下载服务器,并从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;\n[0031] 第二选择模块,用于当所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数时,从下载控制服务器所管辖的所有下载服务器中,选取一个处于在线状态的下载服务器;\n[0032] 所述下载控制服务器中还维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;\n[0033] 所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;\n[0034] 所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;\n[0035] 所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间。\n[0036] 一种支持大并发量文件下载的系统,包括:\n[0037] 客户端,用于向下载控制服务器发送下载服务器查询请求消息,所述下载服务器查询请求消息中携带需下载文件的标识;\n[0038] 下载控制服务器,用于接收客户端的下载服务器查询请求消息;根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;\n将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件;\n[0039] 其中,所述依据缓存文件分布和下载服务器的负载情况,获取下载服务器,包括:\n[0040] 根据所述下载服务器查询请求消息,查询文件服务器中是否存在所述请求文件;\n[0041] 记录所述请求文件的大小;\n[0042] 若存在所述请求文件,则查询所述请求文件是否已在下载服务器的缓存中;\n[0043] 若所述请求文件已在下载服务器的缓存中,则从所述缓存有请求文件的下载服务器中选取一个客户端连接数小于既定最大连接数且客户端数量最少的下载服务器;\n[0044] 若所述请求文件不在下载服务器的缓存中,或是缓存有请求文件的下载服务器中的客户端连接数均大于等于既定最大连接数,则从下载控制服务器所管辖的所有下载服务器中选取一个处于在线状态的下载服务器;\n[0045] 所述客户端还用于在接收到下载控制服务器返回的下载服务器地址后,向所述返回的下载服务器地址发起文件下载请求消息;\n[0046] 所述下载控制服务器中还维护了一个下载服务器列表,一个已缓存文件列表,一个未缓存文件列表;\n[0047] 所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录;\n[0048] 所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;\n[0049] 所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间。\n[0050] 本发明实施例提供的支持大并发量文件下载的方法、装置、系统,下载控制服务器通过由分析缓存文件及判断下载服务器的负载情况组成的负载均衡原则,选出下载压力最小的一台下载服务器提供文件下载服务。当出现大并发量下载的情况时,下载控制服务器依照所述负载均衡原则对各下载服务器进行任务分担,实现了对大并发量文件下载任务的优化分配,从而减轻了大并发量文件下载对服务器造成的下载压力。\n附图说明\n[0051] 图1为本发明实施例1中支持大并发量文件下载的方法的流程图;\n[0052] 图2为本发明实施例1中支持大并发量文件下载的装置的框图;\n[0053] 图3为本发明实施例1中支持大并发量文件下载的系统的框图;\n[0054] 图4为本发明实施例2中支持大并发量文件下载的方法的流程图;\n[0055] 图5为本发明实施例2中支持大并发量文件下载的方法的流程图;\n[0056] 图6为本发明实施例2中支持大并发量文件下载的方法的流程图;\n[0057] 图7为本发明实施例2中支持大并发量文件下载的方法的流程图;\n[0058] 图8为本发明实施例3中支持大并发量文件下载的装置的框图;\n[0059] 图9为本发明实施例3中支持大并发量文件下载的装置的框图;\n[0060] 图10为本发明实施例3中支持大并发量文件下载的装置的框图;\n[0061] 图11为本发明实施例3中支持大并发量文件下载的装置的框图;\n[0062] 图12为本发明实施例3中支持大并发量文件下载的装置的框图;\n[0063] 图13为本发明实施例4中支持大并发量文件下载的系统的框图。\n具体实施方式\n[0064] 下面结合本发明实施例的附图对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0065] 实例1:\n[0066] 本发明实施例公开了一种支持大并发量文件下载的方法,如图1所示,包括以下步骤:\n[0067] 101、下载控制服务器接收客户端的下载服务器查询请求消息,所述下载服务器查询请求消息中携带了所述客户端需下载的文件的标识。\n[0068] 102、下载控制服务器根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器。\n[0069] 103、将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件。\n[0070] 本发明实施例还公开了一种支持大并发量文件下载的装置,如图2。所述支持大并发量文件下载的装置包括:服务器请求接收单元21,服务器获取单元22,服务器请求返回单元23。\n[0071] 客户端向下载控制服务器发出服务器查询请求后,服务器请求接收单元21接收所述客户端的下载服务器查询请求消息;服务器获取单元22根据所述下载服务器查询请求消息,并依据缓存文件分布和下载服务器的负载情况,获取一个下载服务器;然后,服务器请求返回单元23将所述获取的一个下载服务器的地址发送给所述客户端,指示客户端从所述地址对应的下载服务器中下载文件。\n[0072] 本发明实施例还公开了一种支持大并发量文件下载的系统,如图3所示,包括客户端31、下载控制服务器32。所述客户端一般在两个或两个以上,本实施例以客户端31为例进行说明。客户端31向下载控制服务器32发送下载服务器查询请求消息,所述下载服务器查询请求消息中携带需下载文件的标识。下载控制服务器32接收客户端31的下载服务器查询请求消息后,根据所述下载服务器查询请求消息,并依据缓存文件分布和各下载服务器的负载情况,获取一个下载服务器,将所述获取的一个下载服务器的地址发送给客户端31,指示客户端31从所述地址对应的下载服务器中下载文件。客户端31在接收到下载控制服务器32返回的下载服务器地址后,向所述返回的下载服务器地址发起文件下载请求消息。\n[0073] 本实施例提供的一种支持大并发量文件下载的方法、装置及系统,当出现大并发量下载的情况时,通过对缓存文件分布和下载服务器的负载情况的分析,从所有下载服务器中获取一个下载压力最小的下载服务器向客户端提供文件下载服务。实现了负载的均衡分配,减轻了大并发量文件下载对服务器造成的下载压力。\n[0074] 实例2:\n[0075] 本发明实施例公开了一种支持大并发量文件下载的方法,如图4所示,包括以下步骤:\n[0076] 401、客户端发起下载请求后,下载控制服务器接收客户端的下载服务器查询请求消息,所述下载服务器查询请求消息中携带了所述客户端需下载的文件的标识。\n[0077] 402、根据所述下载服务器查询请求消息中的文件的标识,查询文件服务器中是否存在所述请求文件,若不存在所述请求文件,转向步骤403;若存在所述请求文件,则转向步骤404。\n[0078] 403、下载控制服务器通知客户端不存在所述请求文件,结束客户端本次下载请求。\n[0079] 404、记录所述请求文件的大小。\n[0080] 405、查询所述请求文件是否已在下载服务器的缓存中,如果所述请求文件已在下载服务器的缓存中,转向步骤406;如果所述请求文件不在任何下载服务器的缓存中,转向步骤408。\n[0081] 406、在缓存有请求文件的下载服务器中选取一个最优下载服务器,所述最优下载服务器的客户端连接数小于既定最大连接数且客户端连接数最少,如果存在所述最优下载服务器,则转向步骤408;如果不存在所述最优下载服务器,转向步骤407。\n[0082] 407、在所述请求文件不在任何下载服务器的缓存中、或是不存在所述最优下载服务器的情况下,下载控制服务器从所管辖的所有下载服务器中,选取一个处于在线状态的下载服务器。\n[0083] 408、将所述最优下载服务器的地址、或所述选出的处于在线状态的下载服务器的地址返回给客户端,结束本次过程。\n[0084] 在步骤407中,所述选取一个处于在线状态的下载服务器的选择过程如图5所示,包括以下步骤:\n[0085] 501、从下载控制服务器的下载服务器列表中选择处于在线状态并且客户端连接数小于既定最大连接数的下载服务器的集合,如果不存在所述下载服务器的集合,转向步骤502;如果存在所述下载服务器的集合,转向步骤503。\n[0086] 502、下载控制服务器通知客户端不存在可用的下载服务器,结束客户端本次下载请求。\n[0087] 503、在所述下载服务器的集合中,选择可用内存容量大于请求文件大小的一组下载服务器,如果选择出可用内存容量大于请求文件大小的下载服务器个数大于0,转向步骤\n504;如果选择出可用内存容量大于请求文件大小的下载服务器个数等于0,转向步骤506。\n[0088] 504、在所述选择出的可用内存容量大于请求文件大小的一组下载服务器中,选择出连接数最少的一个下载服务器。\n[0089] 505、将步骤504中选出的下载服务器的下载方式设置为缓存下载,并将步骤504中选出的下载服务器对应的请求文件的标识和文件大小以及步骤504中选出的下载服务器的地址发送给已缓存文件列表。\n[0090] 506、在步骤501中选出的所述下载服务器的集合中,选择出连接数最少的一个下载服务器。\n[0091] 507、将选择出的下载服务器的下载方式设置为普通下载,并将步骤506选出的下载服务器对应的请求文件的标识和文件大小发送给未缓存文件列表。\n[0092] 在下载控制服务器执行完步骤505后,下载控制服务器还需对已缓存文件列表执行以下步骤:\n[0093] 根据步骤505中发送给已缓存文件列表的请求文件的标识、提供缓存下载的下载服务器的地址,在已缓存文件列表中查找是否存在与所述请求文件的标识、提供缓存下载的下载服务器的地址对应的已缓存文件记录;\n[0094] 如果查找到所述已缓存文件记录,将所述已缓存文件记录的被请求次数加1,将所述已缓存文件记录的最后一次请求时间更新为当前时间;\n[0095] 如果未查找到所述已缓存文件记录,则向所述提供缓存下载的下载服务器的地址发送带有所述请求文件的标识和文件大小的增加缓存文件消息;\n[0096] 发送所述增加缓存文件消息后,在已缓存文件列表中添加所述发送给已缓存文件列表请求文件的记录,包括记录文件大小、记录所述提供缓存下载的下载服务器的地址、将所述请求文件的被请求次数设为1、将所述请求文件的最后一次请求时间更新为当前时间。\n[0097] 在下载控制服务器执行完步骤507后,下载控制服务器还需对未缓存文件列表执行以下步骤:\n[0098] 根据步骤507中发送给未缓存文件列表的请求文件的标识在未缓存文件列表中查找是否存在与发送给未缓存文件列表的请求文件的标识对应的未缓存文件记录;\n[0099] 如果查找到所述未缓存文件记录,将所述对未缓存文件记录的被请求次数加1,将所述未缓存文件记录的最后一次请求时间更新为当前时间;\n[0100] 如果未查找到所述未缓存文件记录,则在已缓存文件列表中添加所述发送给未缓存文件列表的请求文件的记录,包括记录文件大小、将请求文件的被请求次数设为1、将请求文件的最后一次请求时间更新为当前时间。\n[0101] 本发明实施例的支持大并发量文件下载的方法,还提供对已缓存文件列表和未缓存文件列表中的文件的记录进行删除的操作,如图6所示,所述删除的动作包括以下步骤:\n[0102] 601、下载控制服务器按一定周期依次访问未缓存文件列表的文件记录,检查当前时间与每个文件记录中的最后一次请求时间的差值是否超过1分钟。在本实施例中,所述的一定周期可以为5秒。\n[0103] 602、如果当前时间与所述文件记录的最后一次请求时间的差值超过1分钟,从未缓存文件列表中删除所述文件记录,继续检查下一个文件记录。\n[0104] 603、检查完未缓存文件列表的全部文件记录后,再逐个访问已缓存文件列表的文件记录,检查当前时间与已缓存文件列表的每个文件记录中的最后一次请求时间的差值是否超过1分钟。\n[0105] 604、如果当前时间与所述已缓存文件列表的文件记录的最后一次请求时间的差值超过1分钟,向为所述已缓存文件列表的文件提供缓存的下载服务器发送删除缓存文件消息。\n[0106] 605、当下载控制服务器接收到所述提供缓存的下载服务器返回的删除成功的消息后,将被下载服务器删除缓存的文件的记录从已缓存文件列表中删除。\n[0107] 在步骤605中将被下载服务器删除缓存的文件的记录从已缓存文件列表中删除的过程中,同时还要将下载服务器列表中记录的所述删除缓存文件的下载服务器的可用内存进行增加,增加的容量等于所述被删除的缓存文件的容量。如果在执行步骤605时,下载控制服务器未接收到所述提供缓存下载的下载服务器返回的删除成功的消息,则不对当前被检查的文件记录做处理,继续检查下一个文件记录。\n[0108] 图6提供的对已缓存文件列表和未缓存文件列表的删除操作,清理了长时间不被请求的文件的记录。\n[0109] 本发明实施例的支持大并发量文件下载的方法,还提供对进行普通下载的文件分配可提供缓存下载的下载服务器的操作,如图7所示,包括以下步骤:\n[0110] 701、将未缓存文件列表中的文件记录按被请求次数从多到少进行排序。\n[0111] 702、从被请求次数最多的文件开始,下载控制服务器依照被请求次数从多到少的顺序,针对所有未缓存文件列表中的文件记录,查找是否有符合缓存下载要求的下载服务器。\n[0112] 所述查找是否有符合缓存下载要求的下载服务器的方法,依照图5所示的操作步骤执行。与图5所示的操作步骤有所不同的是,如果未查找到可用服务器或是查找到的下载方式为普通下载,结束本次对进行普通下载的文件分配可提供缓存下载的下载服务器的操作;如果查找到所述符合缓存下载要求的下载服务器,则将与所述符合缓存下载要求的下载服务器对应的请求文件的记录加入已缓存文件列表的同时,还需执行步骤703。\n[0113] 703、将与所述符合缓存下载要求的下载服务器对应的请求文件的记录从未缓存文件列表删除。\n[0114] 图7的操作过程,可以在完成图6所示的对已缓存文件列表和未缓存文件列表中的文件的记录的删除的操作后进行。\n[0115] 本发明实施例的支持大并发量文件下载的方法,还提供以下操作过程:\n[0116] 接收新的下载服务器的注册,在下载服务器列表中记录所述新的下载服务器的地址和可用内存,并将所述新的下载服务器的状态设置为在线状态,将所述新的下载服务器的时间记录更新为当前时间。\n[0117] 本发明实施例的支持大并发量文件下载的方法,还提供以下操作过程:\n[0118] 接收所有下载服务器发送的状态信息,所述状态信息中包含对应下载服务器的地址、连接状态、当前连接数、可用内存。根据所述状态信息,更新下载服务器列表中对应的下载服务器的地址、当前连接数、可用内存,并将时间记录更新为当前时间。特别的,如果接收到处于离线状态的下载服务器的状态信息,则在下载服务器列表中将所述处于离线状态的下载服务器的状态重新设置为在线状态,更新所述重新设置为在线状态的下载服务器的当前连接数、可用内存,并将时间记录更新为当前时间。\n[0119] 本发明实施例的支持大并发量文件下载的方法,还提供以下操作过程:\n[0120] 周期性检查所有下载服务器,将状态异常的下载服务器设置为离线状态。比如,可以以2秒为周期,检查下载服务器列表中记录的下载服务器的时间记录,如果所述下载服务器的时间记录与当前时间差值超过6秒,则将所述差值超过6秒的下载服务器判断为状态异常,将连接状态由在线状态改为离线状态。下载控制服务器在为客户端选择下载服务器时,不会将离线状态的下载服务器纳入选择范围,直到所述离线状态的下载服务器重新回到在线状态。\n[0121] 本实施例所述下载服务器列表中的信息包括:所有下载服务器的地址及连接状态,每台下载服务器的当前连接数、可用内存、时间记录。\n[0122] 本实施例所述已缓存文件列表中的信息包括:已存储到某下载服务器的内存中并可进行缓存下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间及缓存文件的下载服务器地址;\n[0123] 本实施例所述未缓存文件列表中的信息包括:未存储到下载服务器的内存中并可进行普通下载的文件的标识及文件大小,每个文件的被请求次数、最后一次请求时间。\n[0124] 本实施例提供了一种支持大并发量文件下载的方法,下载控制服务器通过对缓存文件分布情况及下载服务器的负载情况进行分析判断,选出下载压力最小的一台下载服务器以提供文件下载服务。下载控制服务器在对下载服务器的控制及下载任务分配中,总能够选择出下载压力最小的一台下载服务器来提供下载服务,当出现大并发量下载的情况时,可以实现对大并发量文件下载任务的优化分配,从而减轻了大并发量文件的下载压力。\n同时,下载控制服务器能够对缓存文件进行管理,通知下载服务器删除长时间无下载请求的缓存文件,还可将下载服务器的下载方式由普通下载转变为缓存下载,不断优化下载服务器的服务质量。\n[0125] 实例3:\n[0126] 本发明实施例公开了一种支持大并发量文件下载的装置,如图8所示,所述装置包括:服务器请求接收单元81、服务器获取单元82、服务器请求返回单元83。所述服务器获取单元82中,还包括第一查询模块821、第一记录模块822、第二查询模块823、第一选择模块824、第二选择模块825。\n[0127] 下载控制服务器的服务器请求接收单元81接收客户端的下载服务器查询请求消息。根据所述下载服务器查询请求消息,服务器获取单元的第一查询模块821查询文件服务器中是否存在所述请求文件,如果不存在所述请求文件,下载控制服务器通知客户端不出在所述请求文件,结束客户端本次下载请求;如果存在所述请求文件,第一记录模块822记录所述请求文件的大小。然后,第二查询模块823查询所述请求文件是否已在下载服务器的缓存中,如果所述请求文件已在下载服务器的缓存中,则第一选择模块824在缓存有请求文件的下载服务器中选取一个最优下载服务器,所述最优下载服务器的客户端连接数小于既定最大连接数且客户端连接数最少。如果第二查询模块823查询到所述请求文件不在任何下载服务器的缓存中,或所述最优下载服务器不存在,则第二选择模块825从下载控制服务器所管辖的所有下载服务器中,选取一个处于在线状态的下载服务器。服务器请求返回单元83将第一选择模块824选出的最优下载服务器的地址、或第二选择模块825选出的处于在线状态的下载服务器的地址返回给客户端。\n[0128] 所述第二选择模块825还包括:第一选择子模块8251、第二选择子模块8252、第三选择子模块8253、第一下载设置子模块8254、第四选择子模块8255、第二下载设置子模块\n8256。\n[0129] 在第二选择模块825选择处于在线状态的下载服务器时,首先由第一选择子模块\n8251从下载控制服务器的下载服务器列表中选择处于在线状态并且客户端连接数小于既定最大连接数的下载服务器的集合。第二选择子模块8252在所述下载服务器的集合中,选择可用内存容量大于请求文件大小的一组下载服务器。然后,第三选择子模块8253在所述选择出的一组下载服务器中,选择出连接数最少的一个下载服务器。第一下载设置子模块\n8254将所述选择出的连接数最少的下载服务器的下载方式设置为缓存下载,并将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表。\n[0130] 若在所述下载服务器的集合中,不存在可用内存容量大于请求文件大小的下载服务器,则第四选择子模块8255在所述下载服务器集合中选择出连接数最少的一个下载服务器。然后由第二下载设置子模块8256将所述选择出的连接数最少的下载服务器的下载方式设置为普通下载,并将所述下载方式设置为普通下载的文件的标识和文件大小发送给未缓存文件列表。\n[0131] 第一下载设置子模块8254将所述下载方式设置为缓存下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给已缓存文件列表后,如图9所示,所述装置还包括已缓存文件查找单元91、已缓存文件更新单元92、新缓存消息发送单元93、第一文件添加单元94。\n[0132] 已缓存文件查找单元91根据所述文件的标识和所述下载服务器的地址在已缓存文件列表中查找是否存在所述文件的记录。在查找到所述文件的记录时,已缓存文件更新单元92将所述文件的被请求次数加1,将最后一次请求时间更新为当前时间。在未查找到所述文件的记录时,新缓存消息发送单元93向所述下载服务器的地址发送带有所述文件的标识和文件大小的增加缓存文件消息。在发送所述增加缓存文件消息后,第一文件添加单元94在已缓存文件列表中添加所述文件的记录,包括记录文件大小、记录所述下载服务器的地址、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。\n[0133] 第二下载设置子模块8256将所述下载方式设置为普通下载的文件的标识和文件大小以及选择出的连接数最少的下载服务器的地址发送给未缓存文件列表后,如图9所示,所述装置还包括未缓存文件查找单元95、未缓存文件更新单元96、第二文件添加单元\n97。\n[0134] 未缓存文件查找单元95根据所述文件的标识在未缓存文件列表中查找是否存在所述文件的记录。在查找到所述文件的记录时,未缓存文件更新单元96将所述文件的被请求次数加1,将最后一次请求时间更新为当前时间。在未查找到所述文件的记录时,第二文件添加单元97在未缓存文件列表中添加所述文件的记录,包括记录文件大小、将所述文件的被请求次数设为1、将最后一次请求时间更新为当前时间。\n[0135] 本发明实施例的支持大并发量文件下载的装置,还提供对已缓存文件列表和未缓存文件列表中的文件的记录进行删除的操作,以及对进行普通下载的文件分配可提供缓存下载的下载服务器的操作。如图10所示,所述装置还包括:文件删除控制单元101、缓存下载分配单元102。文件删除控制单元101周期性检查已缓存文件列表和未缓存文件列表,将近期没有下载请求的文件的记录从已缓存文件列表和未缓存文件列表中删除。缓存下载分配单元102对进行普通下载的文件分配可提供缓存下载的下载服务器。在本实施例中,文件删除控制单元101可以5秒为周期检查已缓存文件列表和未缓存文件列表。缓存下载分配单元102可以在文件删除控制单元101完成对已缓存文件列表和未缓存文件列表中的文件的记录的删除的操作后,再执行对进行普通下载的文件分配可用的下载服务器的操作。\n[0136] 本发明实施例提供的支持大并发量文件下载的装置,如图11所述,所述装置还包括:服务器注册单元111、状态接收控制单元112、状态周期检查单元113。\n[0137] 服务器注册单元111接收新的下载服务器的注册,将所述新的下载服务器的信息记录到下载服务器列表。\n[0138] 状态接收控制单元112接收所有下载服务器的状态信息,并在接收到处于离线状态的下载服务器的状态信息时,将下载服务器列表中记录的所述处于离线状态的下载服务器设置为在线状态。\n[0139] 状态周期检查单元113周期性对下载服务器列表中的所有下载服务器的信息进行检查,将状态异常的下载服务器设置为离线状态。比如,本实施例中,状态周期检查单元\n113可以以2秒为周期,检查下载服务器列表中记录的下载服务器的时间记录,如果所述下载服务器的时间记录与当前时间差值超过6秒,则将所述差值超过6秒的下载服务器判断为状态异常,将连接状态由在线状态改为离线状态。下载控制服务器在为客户端选择下载服务器时,不会将离线状态的下载服务器纳入选择范围,直到所述离线状态的下载服务器重新回到在线状态。\n[0140] 本实施例所述的下载服务器列表、已缓存文件列表、未缓存文件列表可参照实施例2中对下载服务器列表、已缓存文件列表、未缓存文件列表进行的描述。\n[0141] 本实施例提供了一种支持大并发量文件下载的装置,下载控制服务器通过对缓存文件分布情况及下载服务器的负载情况进行分析,选出下载压力最小的一台下载服务器。\n当出现大并发量下载的情况时,下载控制服务器对下载服务器的控制及下载任务进行均衡分配,选择出下载压力最小的一台下载服务器来提供下载服务,实现了对大并发量文件下载任务的优化分配,减轻了大并发量文件的下载对下载服务器造成的负担。同时,下载控制服务器能够对缓存文件进行管理,通知下载服务器删除长时间无下载请求的缓存文件,还可将下载服务器的下载方式由普通下载转变为缓存下载,不断优化下载服务器的服务质量。\n[0142] 实例4:\n[0143] 本实施例提供了一种支持大并发量文件下载的系统,如图12所示,所述系统包括下载控制服务器121、客户端122、下载服务器123。\n[0144] 所述客户端的数量一般为两个或两个以上,所述下载服务器的数量一般为两个或两个以上。\n[0145] 客户端122向下载控制服务器121发送下载服务器查询请求消息,所述下载服务器查询请求消息中携带需下载文件的标识。下载控制服务器121接收客户端122的下载服务器查询请求消息后,根据所述下载服务器查询请求消息,并依据缓存文件分布和各下载服务器的负载情况,获取下载服务器123,将所述获取的下载服务器123的地址发送给客户端31,指示客户端122从下载服务器123中下载文件。客户端122在接收到下载控制服务器121返回的下载服务器123地址后,向下载服务器123发起文件下载请求消息。下载服务器123在接收到客户端122的文件下载请求消息后,向客户端122提供缓存下载或普通下载。\n[0146] 下载控制服务器121还用于接收新加入的下载服务器的注册,在下载服务器列表中记录所述新加入的下载服务器的地址和可用内存,并将所述新加入的下载服务器的状态设置为在线状态,将所述新加入的下载服务器的时间记录更新为当前时间。\n[0147] 下载控制服务器121还用于接收所有下载服务器发送的状态信息,所述状态信息中包含对应下载服务器的地址、连接状态、当前连接数、可用内存。以下载服务器123为例进行说明,当下载控制服务器121接收到下载服务器123的状态信息后,更新下载服务器列表中下载服务器123的地址、当前连接数、可用内存,并将时间记录更新为当前时间。特别的,如果接收到处于离线状态的下载服务器123的状态信息,则在下载服务器列表中将下载服务器123的状态重新设置为在线状态,并更新下载服务器123的当前连接数、可用内存,并将时间记录更新为当前时间。\n[0148] 另外,下载控制服务器121周期性检查下载服务器列表中的所有下载服务器,将状态异常的下载服务器设置为离线状态。比如,以2秒为周期,检查下载服务器列表中记录的下载服务器的时间记录。以下载服务器123为例,检查其时间记录,如果下载服务器123的时间记录与当前时间差值超过6秒,则将下载服务器123判断为状态异常,将连接状态由在线状态改为离线状态。下载控制服务器121在为客户端选择下载服务器时,不会将离线状态的下载服务器123纳入选择范围,直到下载服务器123重新回到在线状态。\n[0149] 下载控制服务器121为某请求文件获取到一个新的下载服务器123时,还对下载方式进行选择。若下载方式选择为缓存下载,则下载控制服务器121向下载服务器123发送增加缓存文件消息。下载服务器123接收所述增加缓存文件消息后,为所述某请求文件分配缓存空间。\n[0150] 下载控制服务器121还提供对已缓存文件列表和未缓存文件列表中的文件的记录进行删除的操作,具体操作步骤可参考实施例2中的步骤601至605。本实施例中,以下载服务器123为已缓存文件列表的文件提供缓存为例进行说明:下载控制服务器121向下载服务器123发送删除缓存文件消息,下载服务器123接收所述删除缓存文件消息后,将与所述删除缓存文件消息对应的缓存从内存中删除,并向下载控制服务器121返回一个删除成功消息。下载控制服务器接收所述删除成功消息后,将被下载服务器123删除缓存的文件的记录从已缓存文件列表中删除。\n[0151] 本实施例中的下载服务器需进行下载服务器初始化。所述初始化包括:将可用内存赋值为所述下载服务器的最大可用内存值、将当前客户端的连接数设为0,并向下载控制服务器121发起注册,所述注册的内容包括所述下载服务器的地址及可用内存。\n[0152] 本实施列中的下载服务器还需周期性向下载控制服务器121发送状态信息,所述状态信息包含所述下载服务器的地址、连接状态、当前连接数、可用内存。本实施例中,发送状态信息的周期可以设置为0.1秒。\n[0153] 本实施例中的下载服务器还提供缓存管理功能。所述缓存管理功能包括:缓存的初始化、缓存文件的增加、缓存文件的删除。\n[0154] 以下载服务器123为例,缓存的初始化按照以下方式进行。下载服务器123中,根据自身的最大可用内存值和内存块大小block_size计算出内存块数MAX_N(MAX_N等于所述自身的最大内存值除以block_size)。根据每个内存块的起始地址,按起始地址由低到高的顺序,为每个内存块分配索引号block_idx。block_idx由0开始,排列到MAX_N-1。下载服务器123创建一个空闲内存链表,所述空闲内存链表记录block_idx以及block_idx对应的内存地址(block_idx对应的内存地址等于所述最大可用内存值的起始地址加上block_idx*block_size)。在缓存的初始化中,所有内存块都设置为空闲,存储在一个空闲内存哈希表中。所述空闲内存哈希表中还记录了一个空闲内存块数N,在所述缓存的初始化时,所述空闲内存块数N被赋值为MAX_N。同时,在所述缓存的初始化中,下载服务器123还创建一个缓存文件信息表。所述缓存文件信息表的每条缓存文件信息项包括:缓存文件的标识、缓存文件的大小、一个内存块索引数组、一个内存块可用标志数组以及缓存文件占用的内存块数。所述内存块索引数组记录所在缓存文件信息项的缓存文件占用的各内存块的起始地址及block_idx。内存块可用标志数组记录所在缓存文件信息项的缓存文件占用的各个内存块是否可用。\n[0155] 以下载服务器123为例,缓存文件的增加按照以下方式进行。首先,下载服务器\n123接收下载控制服务器121的增加缓存文件消息,所述增加缓存文件消息包含请求文件的标识及文件大小file_size。计算需要的内存块数n(内存块数n等于文件大小除以内存块大小,如果计算出的内存块数n不是整数,则将内存块数n向上取整)。若所述内存块数n大于空闲内存块数N,则下载服务器123向下载控制服务器121返回增加缓存文件失败的消息。若所述内存块数n不大于空闲内存块数N,为所述请求文件分配一个缓存文件信息项,记录所述请求文件的标识、文件大小,并将缓存文件占用的内存块数设置为n,同时,从所述空闲哈希表的表头方向开始,取出n个连续的空闲内存块的记录,将所述空闲内存块的记录记入内存索引数组的前n项,将内存块可用标志数组前n项设置为不可用。然后,清除空闲内存哈希表中对应的n个连续的空闲内存块记录,并将空闲内存块数N减去n。\n然后,向下载控制服务器121回复增加缓存文件成功的消息。最后,下载服务器123根据所述请求文件的标识向文件服务器申请所述请求文件,文件服务器将所述请求文件对应的数据依次存入所述n个连续的空闲内存块,每填满一个空闲内存块,就将对应的内存块可用标志数组的数组项设置为可用。在设置为可用后,客户端121才能对缓存文件进行下载。\n[0156] 上述下载服务器123根据所述请求文件的标识向文件服务器申请所述请求文件的操作过程是:下载服务器123向文件服务器发起n次文件请求消息,所述文件请求消息包含所述请求文件的标识、每次从文件服务器请求文件的开始位置start_pos(start_pos=i*data_size)、每次文件请求消息申请的数据大小data_size,其中i表示内存块索引数组第i项,i的取值范围为从0至n-1。当i
法律信息
- 2017-02-22
专利权的转移
登记生效日: 2017.01.24
专利权人由青岛海信传媒网络技术有限公司变更为聚好看科技股份有限公司
地址由266071 山东省青岛市崂山区香港东路248号131室变更为266100 山东省青岛市崂山区松岭路399号
- 2015-06-17
- 2011-10-05
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201010624817.8
申请日: 2010.12.31
- 2011-08-24
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-10-10
|
2007-05-21
| | |
2
| |
2007-07-25
|
2006-01-19
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |