本发明涉及通信技术领域,尤其涉及一种多元高效下载服务的实现方法及系统。
背景技术:
通用下载服务是大数据处理的第一步也是最重要的步骤之一。在目前看来,很少有同时做到集高效、容错、多元化、高并发于一体的下载服务。大部分产品只能提供单一场景、业务紧耦合的下载服务且动态解析性能不佳,不能解决高效并且多元的海量资源下载服务,基于当前大数据环境下,同类数据需求所需下载资源费效比普遍偏低,且资源有效利用率明显不足。
技术实现要素:
为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种多元高效下载服务的实现方法,包括:
获取下载服务的接口,判断所述接口是否存在最优下载方式,若是,则通过所述最优下载方式调用所述接口进行下载;
当所述最优下载方式下载失败时,降低所述最优下载方式的权重值,并根据普通下载方式的权重值大小顺序依次使用所述普通下载方式调用所述接口进行下载;
当出现所述普通下载方式下载成功时,停止下载,并增加下载成功的所述普通下载方式的权重值,降低下载失败的所述普通下载方式的权重值;
将所述接口对应的所述最优下载方式、所述最优下载方式的权重值、所述普通下载方式和所述普通下载方式的权重值进行存储,并将所述最优下载方式和所述普通下载方式中权重值最大的下载方式作为新的最优下载方式。
基于上述技术方案,本发明实施例还可以做出如下改进。
可选的,该方法还包括:
当所述最优下载方式或普通下载方式中任一下载方式下载成功时,判断与之相应下载方式的下载次数是否超过预设值;
当所述与之相应下载方式的下载次数N没有超过预设值时,则通过如下公式计算所述与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的所述与之相应下载方式的权重值,g为所述与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为所述与之相应下载方式的下载时长;
或者,当所述与之相应下载方式的下载次数N超过预设值时,则通过如下公式计算所述与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的所述与之相应下载方式的权重值,F'为下载成功后的所述与之相应下载方式的权重备用值,F(i)为所述与之相应下载方式第i次下载时的权重值,M为预设整数,g为所述与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为所述与之相应下载方式的下载时长。
可选的,该方法还包括:
当所述最优下载方式或所述普通下载方式中任一下载方式下载失败时,判断与之相应下载方式的下载次数是否超过预设值;
当所述与之相应下载方式的下载次数N没有超过预设值时,则通过如下计算公式计算所述与之相应下载方式的权重值;
其中,L为下载失败后的所述与之相应下载方式的权重值,h为所述与之相应下载方式下载失败前1次的权重值,count为所述与之相应下载方式下载成功的次数;
或者,当所述与之相应下载方式的下载次数N超过预设值时,则通过如下计算公式先算所述与之相应下载方式的权重值;
其中,L为下载失败后的所述与之相应下载方式的权重值,L'为下载失败后的所述与之相应下载方式的权重预值,L(i)为所述与之相应下载方式第i次下载时的权重值,M为预设整数,h为所述与之相应下载方式下载失败前1次的权重值,count为所述与之相应下载方式下载成功的次数。
可选的,该方法还包括:
当所述接口不存在所述最优下载方式时,使用所有普通下载方式调用所述接口进行下载;
根据每个所述普通下载方式的下载时长计算每个普通下载方式的权重值;
将所述接口对应所有所述普通下载方式和普通下载方式的权重值进行存储,其中权重值最大的所述普通下载方式为最优下载方式。
可选的,根据每个所述普通下载方式的下载时长计算每个普通下载方式的权重值,具体包括:
当所述普通下载方式在预设时长内下载成功时,则通过如下权重计算公式计算所述普通下载方式的权重值;
f=s*100/t;
其中,f为所述普通下载方式的权重值,s为预设值常数,t为所述普通下载方式的下载时长;
或者,当所述普通下载方式在预设时长内下载失败时,则所述普通下载方式的权重值为0。
本发明实施例还提供了一种多元高效下载服务系统,应用于Dubbo服务框架,包括:数据下载子系统、权重值计算子系统和数据库;所述数据下载子系统可通过多种下载方式进行数据下载;
所述数据下载子系统,用于获取下载服务的接口,并根据所述接口查询所述数据库中是否存在对应的最优下载方式,若是,则通过所述最优下载方式调用所述接口进行下载;
所述数据下载子系统,还用于当所述最优下载方式下载失败时,通过所述权重值计算子系统降低所述最优下载方式的权重值,并根据所述数据库中存储的普通下载方式的权重值大小顺序依次使用所述普通下载方式调用所述接口进行下载;
所述数据下载子系统,还用于当出现普通下载方式下载成功时,停止下载,并通过所述权重值计算子系统增加下载成功的所述普通下载方式的权重值,降低下载失败的所述普通下载方式的权重值;
所述数据下载子系统,还用于将所述接口对应所述最优下载方式、所述最优下载方式的权重值、所述普通下载方式和所述普通下载方式的权重值通过所述数据库进行存储,并将所述最优下载方式和所述普通下载方式中权重值最大的下载方式作为新的最优下载方式。
可选的,所述数据下载子系统,还用于当所述最优下载方式或普通下载方式中任一下载方式下载成功时,判断与之相应下载方式的下载次数是否超过预设值;
当所述与之相应下载方式的下载次数N没有超过预设值时,则调用所述权重值计算子系统通过如下公式计算所述与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的所述与之相应下载方式的权重值,g为所述与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为所述与之相应下载方式的下载时长;
或者,当所述与之相应下载方式的下载次数N超过预设值时,则调用所述权重值计算子系统通过如下公式计算所述与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的所述与之相应下载方式的权重值,F'为下载成功后的所述与之相应下载方式的权重备用值,F(i)为所述与之相应下载方式第i次下载时的权重值,M为预设整数,g为所述与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为所述与之相应下载方式的下载时长。
可选的,所述数据下载子系统,还用于当所述最优下载方式或所述普通下载方式中任一下载方式下载失败时,判断与之相应下载方式的下载次数是否超过预设值;
当所述与之相应下载方式的下载次数N没有超过预设值时,则调用所述权重值计算子系统通过如下计算公式计算所述与之相应下载方式的权重值;
其中,L为下载失败后的所述与之相应下载方式的权重值,h为所述与之相应下载方式下载失败前1次的权重值,count为所述与之相应下载方式下载成功的次数;
或者,当所述与之相应下载方式的下载次数N超过预设值时,则调用所述权重值计算子系统通过如下计算公式先算所述与之相应下载方式的权重值;
其中,L为下载失败后的所述与之相应下载方式的权重值,L'为下载失败后的所述与之相应下载方式的权重预值,L(i)为所述与之相应下载方式第i次下载时的权重值,M为预设整数,h为所述与之相应下载方式下载失败前1次的权重值,count为所述与之相应下载方式下载成功的次数。
可选的,所述数据下载子系统,还用于根据所述接口查询所述数据库中是否存在对应的最优下载方式,当所述接口不存在所述最优下载方式时,使用所有普通下载方式调用所述接口进行下载;调用所述权重值计算子系统根据每个所述普通下载方式的下载时长计算每个普通下载方式的权重值;将所述接口对应所有所述普通下载方式和普通下载方式的权重值进行存储,其中权重值最大的所述普通下载方式为最优下载方式。
可选的,所述权重值计算子系统,具体用于当所述普通下载方式在预设时长内下载成功时,则通过如下权重计算公式计算所述普通下载方式的权重值;
f=s*100/t;
其中,f为所述普通下载方式的权重值,s为预设值常数,t为所述普通下载方式的下载时长;
或者,当所述普通下载方式在预设时长内下载失败时,则所述普通下载方式的权重值为0。
本发明的上述技术方案与现有技术相比具有如下优点:本发明实施例根据不同的接口对应的下载方式的权重值大小,依次根据最优下载方式或普通下载方式调用对应接口进行下载,保证了因接口的不同,选取最优的下载方式进行下载,快速完成该接口对应的下载任务,实现了通用、高效、可靠性高以及高扩展性的多元化高并发下载服务响应机制。
附图说明
图1是本发明实施例提供的一种多源高效下载服务的实现方法流程示意图;
图2是本发明另一实施例提供的一种多源高效下载服务的实现方法流程示意图;
图3是本发明又一实施例提供的一种多源高效下载服务系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种多元高效下载服务的实现方法,包括:
获取下载服务的接口,判断接口是否存在最优下载方式,若是,则通过最优下载方式调用接口进行下载;
具体的,不同的信息的下载地址对应着不同的接口,如URL地址的不同,URL地址为统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。将接口与每一个下载方式和下载方式的权重值进行存储,当该接口从未被使用时,下载方式的权重值均为0或权重值不存在,当接口被使用过后,即对应不同的下载方式有不同的下载效率,此时,根据下载方式的权重值大小顺序,选取最优下载方式调用接口进行数据下载。
当最优下载方式下载失败时,降低最优下载方式的权重值,并根据普通下载方式的权重值大小顺序依次使用普通下载方式调用接口进行下载;
具体的,当最优下载方式下载失败时,通过如下计算公式降低最优下载方式的权重值,判断最优下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则通过如下计算公式计算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数;
或者,当与之相应下载方式的下载次数N超过预设值时,则通过如下计算公式先算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,L'为下载失败后的与之相应下载方式的权重预值,L(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数。在不同的情况下,通过不同的计算公式计算应该减少的权重值,其中,当最优下载方式历史下载成功的次数越高,该次下载失败时,减少的权重值越小,避免因服务器波动等原因造成下载失败对最优下载方式的权重值的干扰,然后根据其他的普通下载方式的权重值依次调用该接口进行下载。
当出现普通下载方式下载成功时,停止下载,并增加下载成功的普通下载方式的权重值,降低下载失败的普通下载方式的权重值;
具体的,当其他的普通下载方式下载成功时,即停止下载,不再调用其他的普通下载方式进行下载,通过如下计算公式增加下载成功的普通下载方式的权重值,判断普通下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;
或者,当与之相应下载方式的下载次数N超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,F'为下载成功后的与之相应下载方式的权重备用值,F(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长。
通过如下计算公式降低下载失败的普通下载方式的权重值,判断普通下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;
或者,当与之相应下载方式的下载次数N超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,F'为下载成功后的与之相应下载方式的权重备用值,F(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长。
将接口对应的最优下载方式、最优下载方式的权重值、普通下载方式和普通下载方式的权重值进行存储,并将最优下载方式和普通下载方式中权重值最大的下载方式作为新的最优下载方式;
具体的,最后将接口对应的下载方式和每个下载方式的权重值进行存储,将其中权重值最大的下载方式作为新的最优下载方式,提高下次进行数据下载的效率。
上述实施例中,通过对每个接口计算不同下载方式的权重值,其中下载方式包括:Http下载方式、境外代理下载方式和socks代理下载方式,在此并不限定下载方式的类型,还可通过其他常用的下载方式进行就下载,通过不同下载方式的权重值大小调用接口进行下载,提高下载的效率,并对下载失败的下载方式的权重值进行惩罚,提高下载成功的下载方式的权重值,由此实现了不同接口的最优下载方式的变化,保证每一个接口均通过最有效的下载方式进行下载。
在本实施例中,当最优下载方式下载成功时,判断与之相应下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;
或者,当与之相应下载方式的下载次数N超过预设值时,则通过如下公式计算与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,F'为下载成功后的与之相应下载方式的权重备用值,F(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长。
如图2所示,在一个具体的实施例中,获取下载服务的接口,判断接口是否存在最优下载方式,当接口不存在最优下载方式时,使用所有普通下载方式调用接口进行下载;
根据每个普通下载方式的下载时长计算每个普通下载方式的权重值;
将所述接口对应所有所述普通下载方式和普通下载方式的权重值进行存储,其中权重值最大的普通下载方式为最优下载方式。
在本实施例中,当接口不存在对应的最优下载方式时,即该接口未进行过下载任务,将该接口对应的所有下载方式均调用接口进行数据下载,通过其下载的时长计算每个下载方式的权重值,然后将接口与下载方式和下载方式的权重值进行存储,将其中权重值最大的下载方式作为最优下载方式,方便下次调用接口进行下载。
在本实施例中,根据每个普通下载方式的下载时长计算每个普通下载方式的权重值,具体包括:
当普通下载方式在预设时长内下载成功时,则通过如下权重计算公式计算普通下载方式的权重值;
f=s*100/t;
其中,f为普通下载方式的权重值,s为预设值常数,t为普通下载方式的下载时长;普通下载方式的权重值与普通下载方式的下载时长呈反比,即下载时长越大,该普通下载方式的权重值越小。
或者,当普通下载方式在预设时长内下载失败时,则普通下载方式的权重值为0。
如图3所示,本发明实施例还提供了一种多元高效下载服务系统,应用于Dubbo服务框架,包括:数据下载子系统、权重值计算子系统和数据库;数据下载子系统可通过多种下载方式进行数据下载;其中Dubbo服务框架为开源分布式服务框架,使得应用可通过高性能的远程调用实现服务的输出和输入功能。
在本实施例中,数据下载子系统,用于获取下载服务的接口,并根据接口查询数据库中是否存在对应的最优下载方式,若是,则通过最优下载方式调用接口进行下载;
数据下载子系统,还用于当最优下载方式下载失败时,通过权重值计算子系统降低最优下载方式的权重值,具体的,判断与之相应下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则调用权重值计算子系统通过如下计算公式计算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数;
或者,当与之相应下载方式的下载次数N超过预设值时,则调用权重值计算子系统通过如下计算公式先算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,L'为下载失败后的与之相应下载方式的权重预值,L(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数;并根据数据库中存储的普通下载方式的权重值大小顺序依次使用普通下载方式调用接口进行下载。
在本实施例中,数据下载子系统,还用于当出现普通下载方式下载成功时,停止下载,并通过权重值计算子系统增加下载成功的普通下载方式的权重值,具体的,判断与之相应下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则调用权重值计算子系统通过如下公式计算与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;
或者,当与之相应下载方式的下载次数N超过预设值时,则调用权重值计算子系统通过如下公式计算与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,F'为下载成功后的与之相应下载方式的权重备用值,F(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;降低下载失败的普通下载方式的权重值,具体的,判断与之相应下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则调用权重值计算子系统通过如下计算公式计算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数;
或者,当与之相应下载方式的下载次数N超过预设值时,则调用权重值计算子系统通过如下计算公式先算与之相应下载方式的权重值;
其中,L为下载失败后的与之相应下载方式的权重值,L'为下载失败后的与之相应下载方式的权重预值,L(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,h为与之相应下载方式下载失败前1次的权重值,count为与之相应下载方式下载成功的次数;并根据数据库中存储的普通下载方式的权重值大小顺序依次使用普通下载方式调用接口进行下载。
在本实施例中,数据下载子系统,还用于将接口对应最优下载方式、最优下载方式的权重值、普通下载方式和普通下载方式的权重值通过数据库进行存储,并将最优下载方式和普通下载方式中权重值最大的下载方式作为新的最优下载方式。
在本实施例中,数据下载子系统,还用于当最优下载方式下载成功时,判断与之相应下载方式的下载次数是否超过预设值;
当与之相应下载方式的下载次数N没有超过预设值时,则调用权重值计算子系统通过如下公式计算与之相应下载方式的权重值;
F=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长;
或者,当与之相应下载方式的下载次数N超过预设值时,则调用权重值计算子系统通过如下公式计算与之相应下载方式的权重值;
F'=g+s*100/t;
其中,F为下载成功后的与之相应下载方式的权重值,F'为下载成功后的与之相应下载方式的权重备用值,F(i)为与之相应下载方式第i次下载时的权重值,M为预设整数,g为与之相应下载方式下载成功前1次的权重值,s为预设常数值,t为与之相应下载方式的下载时长。
在一个具体的实施例中,数据下载子系统,还用于获取下载服务的接口,根据接口查询数据库中是否存在对应的最优下载方式,当接口不存在最优下载方式时,使用所有普通下载方式调用接口进行下载;调用权重值计算子系统根据每个普通下载方式的下载时长计算每个普通下载方式的权重值;将所述接口对应所有所述普通下载方式和普通下载方式的权重值进行存储,其中权重值最大的普通下载方式为最优下载方式。
在本实施例中,权重值计算子系统,具体用于当普通下载方式在预设时长内下载成功时,则通过如下权重计算公式计算普通下载方式的权重值;
f=s*100/t;
其中,f为普通下载方式的权重值,s为预设值常数,t为普通下载方式的下载时长;
或者,当普通下载方式在预设时长内下载失败时,则普通下载方式的权重值为0。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。