客户端、服务端的文件下载控制方法、装置及系统的制作方法

文档序号:9846850阅读:442来源:国知局
客户端、服务端的文件下载控制方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及计算机通信技术领域,尤其涉及一种客户端的文件下载控制方法及装置、服务端的文件下载控制方法及装置和文件下载控制系统。
【背景技术】
[0002]目前很多手机APP、桌面客户端、连接到公网的应用服务器都具备在线升级这一功能。在线升级当然离不开在线下载,当大量客户端请求下载服务器的升级包时,必然会给服务器造成一定的压力,影响其他业务功能的用户体验。甚至更为严重会致使服务瘫痪,宕机。
[0003]现有的解决方案包括:
[0004]通过在服务端设置专有参数,提供专有文件通道方式;例如Apache/Nginx/Lighttpd设置x-sendfi Ie功能实现,这种方式在高并发大文件时很容易达到服务端的极限,保证不了下载功能的高可用性;
[0005]扩大服务器带宽、增强服务器硬件资源配置(CPU/内存/高速硬盘等),这种方式依然受限于服务器的硬件性能极限;
[0006]通过服务器集群加负载均衡的方式,加上必要的动态扩展手段,这让高并发大文件下载的正常运转理论上成为可能,但随着服务器数量和集群控制体系的复杂化,实际上需要付出更加巨额的资金成本和维护成本。

【发明内容】

[0007]针对上述技术问题,本发明公开了一种客户端、服务端的文件下载控制方法、装置及系统,能够从客户端角度出发,分散初始下载时间点,从而避免大量的客户端同时向服务端提交下载请求,从而对服务端的响应能力有较高的要求;也能够从服务端角度出发,通过监控下载量的方式,避免同时响应大量的下载请求,也避免造成服务端瘫痪或者宕机等情况的发生。
[0008]本发明给出了一种客户端的文件下载控制方法,包括:
[0009]基于预设方式为客户端分配初始下载时间点;
[0010]当达到所述初始下载时间点则自动向服务端提交下载请求;
[0011 ]接收服务端反馈的处置消息,若允许下载,则开始下载,否则等待下次重连时间点向服务端提交下载请求;
[0012]所述预设方式为将各客户端的初始下载时间点分散到不同时间段的方法。
[0013]进一步地,所述基于预设方式为客户端分配初始下载时间点为:
[0014]基于hash散列方法为客户端分配初始下载时间点;或者,随机为客户端分配初始下载时间点。
[0015]更进一步地,所述基于hash散列方法为客户端分配初始下载时间点为:
[0016]将客户端唯一标识转化为ASCII码值,并将所述ASCII码值累加计算和值;
[0017]基于下载请求对应的文件大小和网络情况得到下载完成所需的平均时间间隔;
[0018]基于服务端允许下载的时间段和平均时间间隔得到允许下载的窗口大小;
[0019]将所述和值对所述窗口大小取余后得到η;
[0020]计算所述平均时间间隔与η的乘积,所述乘积与初始时间点相加得到初始下载时间点。
[0021]进一步地,所述下次重连时间点为:
[0022]基于所述预设方式重新为客户端分配的初始下载时间点;或者
[0023]基于预设时间间隔后得到的下次重连时间点;或者
[0024]服务端反馈的允许重新提交下载请求的时间点。
[0025]本发明同时给出了一种客户端的文件下载控制装置,包括:
[0026]时间点分配模块,用于基于预设方式为客户端分配初始下载时间点;
[0027]下载请求提交模块,用于当达到所述初始下载时间点则自动向服务端提交下载请求;
[0028]消息响应模块,用于接收服务端反馈的处置消息,若允许下载,则开始下载,否则等待下次重连时间点向服务端提交下载请求;
[0029]所述预设方式为将各客户端的初始下载时间点分散到不同时间段的方法。
[0030]进一步地,所述时间点分配模块,用于:
[0031 ]基于hash散列方法为客户端分配初始下载时间点;或者,随机为客户端分配初始下载时间点。
[0032]更进一步地,所述时间点分配模块,具体用于:
[0033]将客户端唯一标识转化为ASCII码值,并将所述ASCII码值累加计算和值;
[0034]基于下载请求对应的文件大小和网络情况得到下载完成所需的平均时间间隔;
[0035]基于服务端允许下载的时间段和平均时间间隔得到允许下载的窗口大小;
[0036]将所述和值对所述窗口大小取余后得到η;
[0037]计算所述平均时间间隔与η的乘积,所述乘积与初始时间点相加得到初始下载时间点。
[0038]进一步地,所述下次重连时间点为:
[0039]基于所述预设方式重新为客户端分配的初始下载时间点;或者
[0040]基于预设时间间隔后得到的下次重连时间点;或者[0041 ]服务端反馈的允许重新提交下载请求的时间点。
[0042]本发明给出了一种服务端的文件下载控制方法,包括:
[0043]接收客户端提交的下载请求,并查询服务端当前响应的下载量;
[0044]基于下载量判断是否响应所述下载请求,并向客户端反馈处置消息。
[0045]进一步地,所述基于下载量判断是否响应所述下载请求,并向客户端反馈处置消息为:
[0046]判断所述下载量是否超过阈值,若是,则不响应所述下载请求,并向客户端反馈不允许下载的消息,否则响应所述下载请求,并向客户端反馈允许下载的消息。
[0047]更进一步地,当判定不响应所述下载请求时,还包括:向客户端反馈重新提交下载请求的时间点。
[0048]上述方法中,所述重新提交下载请求的时间点为:基于服务端当前响应的下载请求对应的文件大小、客户端提交的下载请求对应的文件大小、网络情况及重连队列情况,计算得到的重新提交下载请求的时间点。
[0049]进一步地,当判定响应所述下载请求时,还包括:将所述下载量的数值加I,当所述下载请求响应完成或者异常中断,则将所述下载量的数值减I。
[0050]进一步地,所述接收客户端提交的下载请求后,还包括:查询所述客户端下载失败的次数,若超过失败次数阈值,则不进行基于下载量判断是否响应所述下载请求的操作,而优先响应该下载请求。
[0051]本发明同时给出了一种服务端的文件下载控制装置,包括:
[0052]下载请求接收模块,用于接收客户端提交的下载请求,并查询服务端当前响应的下载量;
[0053]请求判断响应模块,用于基于下载量判断是否响应所述下载请求,并向客户端反馈处置消息。
[0054]进一步地,所述请求判断响应模块,用于:
[0055]判断所述下载量是否超过阈值,若是,则不响应所述下载请求,并向客户端反馈不允许下载的消息,否则响应所述下载请求,并向客户端反馈允许下载的消息。
[0056]更进一步地,当判定不响应所述下载请求时,还包括:向客户端反馈重新提交下载请求的时间点。
[0057]上述装置中,所述重新提交下载请求的时间点为:基于服务端当前响应的下载请求对应的文件大小、客户端提交的下载请求对应的文件大小、网络情况及重连队列情况,计算得到的重新提交下载请求的时间点。
[00
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1