本发明专利技术涉及服务器限流技术领域,具体提供了一种文件下载限流方法,首先进行令牌桶的配置,设置令牌桶大小和令牌桶中放入令牌的速率,再进行优先级队列配置和文件下载分段,下载请求的文件存储在minio集群中,服务器收到分段下载的请求后,会向minio获取一段数据,并缓存至本地。与现有技术相比,本发明专利技术能够正确分配服务端对不同下载请求的负载,大大提高了信创环境下服务器程序的稳定性。对令牌桶进行优化的同时,保持了令牌桶的限流功能以及对瞬时大流量的负载能力,并耦合了对请求分级处理的能力,具有良好的推广价值。具有良好的推广价值。具有良好的推广价值。
【技术实现步骤摘要】
一种文件下载限流方法及装置
[0001]本专利技术涉及服务器限流
,具体提供一种文件下载限流方法及装置。
技术介绍
[0002]近年来,国家大力扶持具有自主知识产权的全国产软硬件的发展,涌现了以国产操作系统和CPU为代表的众多具有自主知识产权的基础软硬件产品。银河麒麟系统、统信uos操作系统等国产操作系统生态环境日趋完善,龙芯、飞腾等具有自主知识产权的高端通用芯片蓬勃发展,技术水平达到或接近同类产品的世界先进水平。
[0003]随着国产基础软硬件的蓬勃发展,国产基础软硬件的推广和使用带来了前所未有的机遇。服务器作为承担着相应服务请求、承担服务、保障服务的设备,在性能和稳定性方面都有着极高的要求。
[0004]服务器可用性,即所选服务器能满足长期稳定工作的要求。下载请求对服务器的流量消耗是很大的,特别是一些大型文件的下载、分发等请求。对下载模块进行限流有助于维持服务器的稳定,预防由于大量下载任务的压力对服务器造成的影响。
[0005]现在主要的限流算法有固定窗口算法、滑动窗口算法、漏桶算法、令牌桶算法等。固定窗口算法缺乏对突发流量的应对办法;滑动窗口算法虽然解决了突发流量的问题,但真实场景中很难控制请求频率;漏桶算法面对突发流量时也只能以恒定流量进行限流;令牌桶算法虽然能很好的应对突发流量,但无法对请求进行优先级相关的处理,当遇到持续时间较长的大流量请求时,只能对服务器压力进行缓冲,不能有效且快速的响应高优先级请求。
技术实现思路
[0006]本专利技术是针对上述现有技术的不足,提供一种实用性强的文件下载限流方法。
[0007]本专利技术进一步的技术任务是提供一种设计合理,安全适用的文件下载限流装置。
[0008]本专利技术解决其技术问题所采用的技术方案是:
[0009]一种文件下载限流方法,其特征在于,首先进行令牌桶的配置,设置令牌桶大小和令牌桶中放入令牌的速率,再进行优先级队列配置和文件下载分段,下载请求的文件存储在minio集群中,服务器收到分段下载的请求后,会向minio获取一段数据,并缓存至本地。
[0010]进一步的,令牌桶大小即令牌桶的容量,由服务器能负载的最大瞬时流量决定,当令牌桶被装填满时,桶的容量决定了限流的大小;
[0011]令牌桶中放入令牌的速率,用于限制平均请求速率。
[0012]进一步的,所述优先级队列配置时,服务器获取请求后,首先进入优先级队列,出队列后,进入不同优先级所对应的令牌桶;
[0013]优先级越高,对应令牌桶桶大小越小,而放入令牌的速率越快;
[0014]当低优先级请求对应的令牌桶阻塞时,为请求设置延时时间,若多次请求失败,可适当调整优先级。
[0015]进一步的,在文件下载分段中,令牌桶运行时,一个请求对应一个令牌,并且限制单次下载的最大数据量做限制以此控制总体流量。
[0016]进一步的,分段下载时通过设置阈值,下载超过阈值大小的文件需分段,没有超过阈值的正常下载;
[0017]最低优先级队列使用大桶,低令牌输入速率设计用于负载服务器收到的普通下载请求;
[0018]中优先级队列使用的令牌桶容量应低于最低优先级令牌桶,输入速率应与最低优先级令牌桶相似但略低,中优先级队列所用令牌桶,用于分担低优先级队列令牌桶的压力;
[0019]高有限级令牌桶应采用小桶,高令牌输入速率,用于处理紧急的下载请求。
[0020]进一步的,正常情况下,除标记的高优先级任务外,所有任务均由低优先级队列进入令牌桶,领取令牌后,由服务端处理下载请求。
[0021]进一步的,大流量突发时,低优先级队列的令牌桶中令牌被清空,服务器处于近乎满载的状态,溢出的请求在服务端阻塞,等待一段时间,若此时间间隔内,令牌桶中加入了新的令牌,则将溢出请求按次序相应;
[0022]若溢出的请求在此期间没有被相应,则触发超时,返回http code429请求过多,并基于低优先级令牌桶速率计算预计等待时间间隔。
[0023]进一步的,持续性大流量的情况下,下载请求的数量低于突发性大流量,但仍可使低优先级队列的令牌桶溢出,并会持续一段时间;
[0024]由于持续性的大量请求,低优先级令牌桶返回的超时等待时间无法进行准确预估,在超时请求二次请求仍失败后,会把优先级提高至中等优先级;
[0025]中等优先级有较快的令牌桶生成速率,可快速分担低优先级队列令牌桶处理不了的请求;
[0026]请求由低优先级队列上升到中优先级队列后,一般不会继续上升优先级;高优先级队列一般情况下滞空,只处理重要的下载请求,或重要下载请求的前置请求。
[0027]一种文件下载限流装置,包括:至少一个存储器和至少一个处理器;
[0028]所述至少一个存储器,用于存储机器可读程序;
[0029]所述至少一个处理器,用于调用所述机器可读程序,执行一种文件下载限流方法。
[0030]本专利技术的一种文件下载限流方法及装置和现有技术相比,具有以下突出的有益效果:
[0031]本专利技术能够正确分配服务端对不同下载请求的负载,大大提高了信创环境下服务器程序的稳定性。对令牌桶进行优化的同时,保持了令牌桶的限流功能以及对瞬时大流量的负载能力,并耦合了对请求分级处理的能力。
[0032]通过对下载请求进行优先级划分,能保持整体下载任务的流畅性,防止高优先级任务阻塞造成的流量浪费。
[0033]通过对令牌桶和优先级队列的调整,适应不同的服务器环境,实现方法简洁有效。
附图说明
[0034]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]附图1是一种文件下载限流方法中令牌桶优化基本原理图;
[0036]附图2是一种文件下载限流方法中令牌桶优化基本原理图。
具体实施方式
[0037]为了使本
的人员更好的理解本专利技术的方案,下面结合具体的实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本专利技术保护的范围。
[0038]下面给出一个最佳实施例:
[0039]如图1、2所示,本实施例中的一种文件下载限流方法,在实际开发中,文件下载的过程一般由需要文件存储系统,服务器下载模块,限流模块,客户端接收文件模块组成。文件存储系统存储待下载的文件,要保证整个文件系统的可靠稳定;下载模块主要跟客户端接收模块进行配合,完成文件下载的主题操作,包括分段下载大文件、断点续传等特殊处理;限流模块则是限制文件下载的流量,防止流量过大,对服务器及文件存储系统造成冲击。
...
【技术保护点】
【技术特征摘要】
1.一种文件下载限流方法,其特征在于,首先进行令牌桶的配置,设置令牌桶大小和令牌桶中放入令牌的速率,再进行优先级队列配置和文件下载分段,下载请求的文件存储在minio集群中,服务器收到分段下载的请求后,会向minio获取一段数据,并缓存至本地。2.根据权利要求1所述的一种文件下载限流方法,其特征在于,令牌桶大小即令牌桶的容量,由服务器能负载的最大瞬时流量决定,当令牌桶被装填满时,桶的容量决定了限流的大小;令牌桶中放入令牌的速率,用于限制平均请求速率。3.根据权利要求2所述的一种文件下载限流方法,其特征在于,所述优先级队列配置时,服务器获取请求后,首先进入优先级队列,出队列后,进入不同优先级所对应的令牌桶;优先级越高,对应令牌桶桶大小越小,而放入令牌的速率越快;当低优先级请求对应的令牌桶阻塞时,为请求设置延时时间,若多次请求失败,可适当调整优先级。4.根据权利要求3所述的一种文件下载限流方法,其特征在于,在文件下载分段中,令牌桶运行时,一个请求对应一个令牌,并且限制单次下载的最大数据量做限制以此控制总体流量。5.根据权利要求4所述的一种文件下载限流方法,其特征在于,分段下载时通过设置阈值,下载超过阈值大小的文件需分段,没有超过阈值的正常下载;最低优先级队列使用大桶,低令牌输入速率设计用于负载服务器收到的普通下载请求;中优先级队列使用的令牌桶容量应低于最低优先级令牌桶,输入速率应与最低优先级令牌桶相似但略低,中优先级队列所用令牌桶,用于分担低优先级队列令牌桶的压力;高有限级令牌桶应采用小桶...
【专利技术属性】
技术研发人员:孙长生,孙元田,
申请(专利权)人:浪潮软件集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。