一种文件下载方法及服务器与流程

文档序号:18180013发布日期:2019-07-17 05:09阅读:280来源:国知局
一种文件下载方法及服务器与流程

本发明涉及电子通信技术领域,尤其涉及一种文件下载方法及服务器。



背景技术:

java设计网络程序中如何控制下载速度站在输入/输出(input/output,i/o)的角度来说,限速的控制技术有:假设下载或者上传速度上限是m(kb/s),那么发送一个固定的字节数据(假设是n字节)的时间花费是:n/m;假设现在要发送n字节的数据,那么理论所需的时间应该是n/m,而在实际情况下,发送n字节的数据只花费了t秒,那么发送该发送线程就应该睡眠n/m-t秒,这样就基本实现了速度的控制。

而对于同时有大量客户端同时发起的下载请求时,以上现有技术在大量同时下载时容易造成的网络拥堵致使网络瘫痪。



技术实现要素:

本发明实施例提供一种文件下载方法及服务器,用以解决现有技术中在大量同时下载时容易造成的网络拥堵致使网络瘫痪的问题。

第一方面,本发明实施例提供了一种文件下载方法,包括:

接收客户端发送的下载请求;

为所述下载请求分配空闲的令牌,并查看当前的可用带宽;

若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;

根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;

将下载后的文件发送给所述客户端。

第二方面,本发明实施例提供了一种用于文件下载的服务器,包括:

请求接收模块,用于接收客户端发送的下载请求;

令牌分配模块,用于为所述下载请求分配空闲的令牌,并查看当前的可用带宽;

令牌限速模块,用于若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;

下载池模块,用于根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;

文件发送模块,用于将下载后的文件发送给所述客户端。

第三方面,本发明实施例还提供了一种电子设备,包括:

处理器、存储器、通信接口和通信总线;其中,

所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;

所述通信接口用于该电子设备的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:

接收客户端发送的下载请求;

为所述下载请求分配空闲的令牌,并查看当前的可用带宽;

若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;

根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;

将下载后的文件发送给所述客户端。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:

接收客户端发送的下载请求;

为所述下载请求分配空闲的令牌,并查看当前的可用带宽;

若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;

根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;

将下载后的文件发送给所述客户端。

本发明实施例提供的文件下载方法及服务器,通过服务器在接收到客户端发送的下载请求后,分配令牌,并在当前的可用带宽与所述下载带宽的比例小于预设的比例阈值时,对所述令牌的下载速度进行限速,从而有效降低了多个客户端同时下载文件时导致网络拥堵的可能性,提高了文件下载的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的文件下载方法流程图;

图2为本发明实施例的另一文件下载方法流程图;

图3为本发明实施例的用于文件下载的服务器结构示意图;

图4示例了一种电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例的文件下载方法流程图,如图1所示,所述方法包括:

步骤s01、接收客户端发送的下载请求。

本发明实施例的网络由一个服务器和至少一个与所述服务器相连的客户端组成。当任一客户端需要下载文件时,将向所述服务器发送下载请求。

步骤s02、为所述下载请求分配空闲的令牌,并查看当前的可用带宽。

所述服务器设置有下载池和预设数量的令牌,所述下载池包括与所述服务器中令牌的数量对应的下载线程,通过所述令牌可以开启下载线程将所述客户端需要的文件下载到所述下载池中。

当所述服务器接收到下载请求后,将查看是否存在空闲的令牌。若存在,则所述服务器为所述下载请求分配一个空闲令牌。同时,所述服务器将检测所述下载池中带宽的使用状态,包括当前的可用带宽和预设的总下载带宽。

步骤s03、若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽。

所述服务器将可用带宽与所述总下载带宽进行比较,若两者的比值小于预设的比例阈值,例如20%等,则所述服务器判定所述可用带宽不足,并将所述令牌的下载速度设定为限速带宽;而若两者的比值不小于预设的比例阈值,则不对所述令牌的下载速度进行限定。

步骤s04、根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌。

根据所述令牌的下载速度,所述服务器在所述下载池中开启下载线程下载与所述下载请求对应的文件。若所述令牌的下载速度为限定带宽,则所述下载线程的下载速度最高为所述限定带宽;否则,不对该下载线程的下载速度进行限定。

当所述文件在下载池中完成下载后,所述服务器释放该令牌。

步骤s05、将下载后的文件发送给所述客户端。

所述服务器将下载完成后的文件发送给所述客户端。

本发明实施例通过服务器在接收到客户端发送的下载请求后,分配令牌,并在当前的可用带宽与所述下载带宽的比例小于预设的比例阈值时,对所述令牌的下载速度进行限速,从而有效降低了多个客户端同时下载文件时导致网络拥堵的可能性,提高了文件下载的效率。

图2为本发明实施例的另一文件下载方法流程图,如图2所示,在所述步骤s01后,所述方法还包括:

步骤s11、若没有空闲的令牌,则将所述下载请求保存到等待池中。

当所述服务器接收到下载请求后,若当前不存在空闲的令牌,则将所述下载请求暂时保存到预先设置的等待池中。所述等待池中所有的下载请求可以按照预设的排列规则进行排序,例如,根据进入的时间先后,或者根据下载请求的优先级大小进行排序。为了简便起见,在下面的实施例中都仅以按时间先后进行排序为例进行举例说明。

步骤s12、在任一令牌被释放后,将释放的令牌分配给所述等待池中最早保存的下载请求,并查看当前的可用带宽。

由上述实施例可知,当所述下载池完成对任一文件的下载时,所述服务器会释放与所述文件对应的令牌。此时,所述服务器将查看所述等待池中是否存在下载请求。若不存在,则所述令牌将等待由客户端发送的新的下载指令;若存在,所述服务器则根据排序,提取出所述等待池中最早保存的下载请求,并将释放的令牌分配给该下载请求。同时,所述服务器根据当前的可用带宽来判定是否对该令牌进行限速。

本发明实施例通过将没有分配到令牌的下载请求保存到等待池中,然后,在下载池释放令牌后,将释放的令牌分配给等待池中的下载请求,以实现文件的下载,从而有效降低了多个客户端同时下载文件时导致网络拥堵的可能性,提高了文件下载的效率。

基于上述实施例,进一步地,所述方法还包括:

设置所述令牌的总数、所述限速带宽和所述比例阈值。

对于服务器的各个下载参数可以根据实际的需要进行设定和修改,包括所述服务器中用于下载的令牌总数,对令牌进行限速的限速带宽,以及判断是否对令牌进行限速的比例阈值。具体可以通过服务器的交互设备输入。

本发明实施例通过对所述服务器的令牌的总数、所述限速带宽和所述比例阈值的设定,从而提高了文件下载的灵活性和效率。

基于上述实施例,进一步地,所述方法还包括:

设置不限速带宽;相应地,所述方法还包括:

若所述可用带宽与总下载带宽的比值不小于预设的比例阈值,则将所述令牌的下载速度设定为所述不限速带宽。

所述服务器可设置的下载参数还可以包括不限速带宽。

从而所述服务器在将所述令牌分配给下载请求后,若所述可用带宽与总下载带宽的比例不小于预设的比例阈值,则将所述令牌的下载速度设定为不限速带宽。此时,当所述下载池下载与所述下载请求对应的文件时,其下载的最大速度不超过该不限速带宽。

另外,当将所述比例阈值设定为0%时,此时,所有令牌的下载速度均被设定为不限速带宽,相当于下载池中所有下载线程的下载速度均不得超过所述不限速带宽。

本发明实施例通过设定不限速带宽,从而提高了文件下载的灵活性和效率。

图3为本发明实施例的用于文件下载的服务器结构示意图,如图3所示,所述服务器至少包括:请求接收模块10、令牌分配模块11、令牌限速模块12、下载池模块13和文件发送模块14;其中,

所述请求接收模块10用于接收客户端发送的下载请求;所述令牌分配模块11用于为所述下载请求分配空闲的令牌,并查看当前的可用带宽;所述令牌限速模块12用于若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;所述下载池模块13用于根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;所述文件发送模块14用于将下载后的文件发送给所述客户端。具体地:

当任一客户端需要下载文件时,将向所述请求接收模块10发送下载请求。

所述请求接收模块10将接收到的下载请求发送给所述令牌分配模块11,由所述令牌分配模块11查看是否存在空闲的令牌。若存在,则为所述下载请求分配一个空闲令牌。同时,所述令牌限速模块12将检测所述下载池中带宽的使用状态,包括当前的可用带宽和预设的总下载带宽。

所述令牌限速模块12将可用带宽与所述总下载带宽进行比较,若两者的比值小于预设的比例阈值,例如20%等,则判定所述可用带宽不足,将所述令牌的下载速度设定为限速带宽,并发送给所述下载池模块13。而若两者的比值不小于预设的比例阈值,则所述令牌限速模块12不对所述令牌的下载速度进行限定,并发送给所述下载池模块13。

根据所述令牌的下载速度,所述下载池模块13在所述下载池中开启下载线程下载与所述下载请求对应的文件。若所述令牌的下载速度为限定带宽,则所述下载线程的下载速度最高为所述限定带宽;否则,不对该下载线程的下载速度进行限定。

当所述文件在下载池中完成下载后,所述下载池模块13将所述文件发送给文件发送模块14,并释放该令牌。

所述文件发送模块14将下载完成后的文件发送给所述客户端。

本发明实施例提供的服务器用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过文件接收模块10在接收到客户端发送的下载请求后,由所述令牌分配模块11分配令牌,并由所述令牌限速模块12在当前的可用带宽与所述下载带宽的比例小于预设的比例阈值时,对所述令牌的下载速度进行限速,从而有效降低了多个客户端同时下载文件时导致网络拥堵的可能性,提高了文件下载的效率。

基于上述实施例,进一步地,所述令牌分配模块还用于:

若没有空闲的令牌,则将所述下载请求保存到等待池中;

在任一令牌被释放后,将释放的令牌分配给所述等待池中最早保存的下载请求,并查看当前的可用带宽。

当所述文件接收模块将接收到的下载请求发送给所述令牌分配模块后,若当前不存在空闲的令牌,则所述令牌分配模块将所述下载请求暂时保存到预先设置的等待池中。所述等待池中所有的下载请求可以按照预设的排列规则进行排序,例如,根据进入的时间先后,或者根据下载请求的优先级大小进行排序。为了简便起见,在下面的实施例中都仅以按时间先后进行排序为例进行举例说明。

当所述下载池模块完成对任一文件的下载时,会释放与所述文件对应的令牌。此时,所述令牌分配模块将查看所述等待池中是否存在下载请求。若不存在,则所述令牌将等待由客户端发送的新的下载指令;若存在,则根据排序,所述令牌分配模块提取出所述等待池中最早保存的下载请求,并将释放的令牌分配给该下载请求。同时,根据当前的可用带宽来判定是否对该令牌进行限速。

本发明实施例提供的服务器用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过将没有分配到令牌的下载请求保存到等待池中,然后,在下载池释放令牌后,将释放的令牌分配给等待池中的下载请求,以实现文件的下载,从而有效降低了多个客户端同时下载文件时导致网络拥堵的可能性,提高了文件下载的效率。

基于上述实施例,进一步地,所述服务器还包括:

参数设置模块,用于设置所述令牌的总数、所述限速带宽和所述比例阈值。

对于上述实施例中各个下载参数可以由参数设置模块根据实际的需要进行设定和修改,包括用于下载的令牌总数,对令牌进行限速的限速带宽,以及判断是否对令牌进行限速的比例阈值。具体可以通过参数设置模块的交互设备输入。

本发明实施例提供的服务器用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过对所述令牌的总数、所述限速带宽和所述比例阈值的设定,从而提高了文件下载的灵活性和效率。

基于上述实施例,进一步地,所述参数设置模块还用于,设置不限速带宽;

相应地,所述令牌限速模块还用于,若所述可用带宽与总下载带宽的比值不小于预设的比例阈值,则将所述令牌的下载速度设定为所述不限速带宽。

所述参数设置模块可设置的下载参数还可以包括不限速带宽。

从而在所述令牌分配模块将所述令牌分配给下载请求后,若所述可用带宽与总下载带宽的比例不小于预设的比例阈值,则所述令牌限速模块将所述令牌的下载速度设定为不限速带宽。此时,当所述下载池模块下载与所述下载请求对应的文件时,其下载的最大速度不超过该不限速带宽。

另外,当将所述比例阈值设定为0%时,此时,所有令牌的下载速度均被设定为不限速带宽,相当于下载池模块中所有下载线程的下载速度均不得超过所述不限速带宽。

本发明实施例提供的服务器用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。

本发明实施例通过设定不限速带宽,从而提高了文件下载的灵活性和效率。

图4示例了一种电子设备的实体结构示意图,如图4所示,该服务器可以包括:处理器(processor)810、通信接口(communicationsinterface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:接收客户端发送的下载请求;为所述下载请求分配空闲的令牌,并查看当前的可用带宽;若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;将下载后的文件发送给所述客户端。

进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的下载请求;为所述下载请求分配空闲的令牌,并查看当前的可用带宽;若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;将下载后的文件发送给所述客户端。

进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收客户端发送的下载请求;为所述下载请求分配空闲的令牌,并查看当前的可用带宽;若所述可用带宽与总下载带宽的比值小于预设的比例阈值,则将所述令牌的下载速度设定为限速带宽;根据所述令牌的下载速度,下载与所述下载请求对应的文件,并在下载完成后释放所述令牌;将下载后的文件发送给所述客户端。

本领域普通技术人员可以理解:此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1