分布式限流方法、装置及系统制造方法及图纸

技术编号:38274927 阅读:10 留言:0更新日期:2023-07-27 10:27
本发明专利技术公开了一种分布式限流方法、装置及系统,该方法包括:中心节点获取集群中当前的业务节点数、以及各业务节点的状态信息,所述状态信息包括用户数、以及各用户的负载信息;根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参数;将所述限流参数下发给对应的业务节点。本发明专利技术方案对多个用户共用同一服务的情况,在保证用户之间对资源的使用相互不干扰的同时,能够为每个用户都提供低延迟、稳定可靠的服务,提升用户体验。提升用户体验。提升用户体验。

【技术实现步骤摘要】
分布式限流方法、装置及系统


[0001]本专利技术涉及流量控制领域,具体涉及一种分布式限流方法、装置及系统。

技术介绍

[0002]随着云存储技术的不断发展,对象存储(比如S3对象存储等)服务也越来越被广泛使用,而不同的用户对于带宽、延迟、QPS(Queries

per

second,每秒查询率)、持续稳定等有着不同的需求。
[0003]多用户技术在很大程度上提高了资源的利用率,但是多个用户之间以租赁的方式共享云服务的特性,也给实现该技术带来了很大的难题:首先,用户之间对资源的使用相互干扰,降低资源使用效率的同时,用户的QoS(Quality of Service,服务质量)很难得到保证;其次,当资源池达到一定规模的情况下,多用户资源调度算法本身的效率不能满足实际使用需求。
[0004]为此,对于多个用户共用对象存储服务的多用户平台,通常采用分布式限流技术来保证用户之间对资源的使用相互不干扰。现有的分布式限流技术通常有以下两种:
[0005]一种是将Redis作为中心服务,在Redis中使用Lua脚本(一种轻量小巧的脚本语言)维护令牌桶,服务端收到的每一个用户请求都要转发到Redis,判断该用户是否需要限流。这种方法存在以下问题:强依赖Redis,一旦Redis出现异常不可用时,整个限流系统则无法使用;另外所有的用户请求都需要发送到Redis进行检查,不可避免地增加了很多网络开销以及收发数据的硬件开销,这部分开销使得请求的延迟增大,影响用户体验。
>[0006]另一种是仅仅将Redis作为配置中心使用,业务节点从Redis获取令牌桶的配置,在业务节点本地限流。这种方法存在的问题是不能及时动态调节各个节点的限流阈值,不适合存储方涉及大IO(Input/Output,输入/输出)流的应用场景。

技术实现思路

[0007]本专利技术实施例提供一种分布式限流方法、装置及系统,对于多个用户共用同一服务的情况,在保证用户之间对资源的使用相互不干扰的同时,能够为每个用户都提供低延迟、稳定可靠的服务,提升用户体验。
[0008]一方面,本专利技术实施例提供一种分布式限流方法,所述方法包括:
[0009]中心节点获取集群中当前的业务节点数、以及各业务节点的状态信息,所述状态信息包括用户数、以及各用户的负载信息;
[0010]根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参数;
[0011]将所述限流参数下发给对应的业务节点。
[0012]可选地,所述方法还包括:中心节点接收各业务节点上报的状态信息。
[0013]可选地,所述根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参数包括:
[0014]根据各业务节点的状态信息确定各用户的限流参数是否需要调整;
[0015]如果所述用户所有业务节点的限流参数均不需要调整,则依照平均分配原则为所述用户分配各业务节点的限流参数;
[0016]如果所述用户有业务节点的限流参数需要调整,则依照按需分配原则为所述用户分配各业务节点的限流参数。
[0017]可选地,所述限流参数为以下任意一种:令牌数、QoS值。
[0018]可选地,所述根据各业务节点的状态信息确定各用户在该业务节点的限流参数是否需要调整包括:
[0019]根据各业务节点用户的负载信息确定所述用户在该业务节点是否达到动态分配条件;
[0020]如果未达到,则确定所述用户在该业务节点的限流参数不需要调整;否则,确定所述用户在该业务节点的限流参数需要调整。
[0021]可选地,所述动态分配条件为所述用户在该业务节点的负载对其限流参数的消耗占比达到设定阈值。
[0022]可选地,所述依照按需分配原则为所述用户分配各业务节点的限流参数包括:将所述用户未达到动态分配条件的业务节点剩余的限流参数借用给达到动态分配条件的业务节点。
[0023]可选地,按照以下公式重新确定达到动态分配条件的用户的限流参数:
[0024]Qi=(Qs

m
×
Qm)/k;
[0025]其中,Qi为达到动态分配条件的用户i的限流参数,Qs为用户i的总限流参数,m为用户i未达到动态分配条件的业务节点数,Qm为用户i的所述m个业务节点占用的限流参数的平均值,k为用户i达到动态分配条件的业务节点的数量。
[0026]可选地,所述集群中包括多个中心节点,所述多个中心节点中的一个作为主中心节点、其它作为备用中心节点;由所述主中心节点为集群中各业务节点提供服务。
[0027]可选地,所述方法还包括:通过设定算法从所述多个中心节点中选取所述主中心节点。
[0028]另一方面,本专利技术实施例还提供一种分布式限流方法,所述方法包括:
[0029]业务节点实时确定自身状态信息,所述状态信息包括用户数、以及各用户的负载信息;
[0030]根据所述负载信息确定从中心节点动态获取最新配置信息的频次,并按照所述频次从所述中心节点获取最新配置信息;所述配置信息包括各用户的限流参数;
[0031]根据所述用户的限流参数对所述用户进行限流。
[0032]可选地,所述根据所述用户的限流参数对所述用户进行限流包括:
[0033]接收所述用户的业务传输请求,所述传输请求中包含本次传输所需的负载流量;
[0034]在所述负载流量超出所述用户在本业务节点的限流参数的情况下,
[0035]如果所述负载流量小于等于设定值,则拒绝所述业务传输请求;
[0036]如果所述负载流量大于所述设定值,则等待所述用户在本业务节点的最新限流参数满足所述负载流量后,执行本次传输。
[0037]可选地,所述等待所述用户在本业务节点的最新限流参数满足所述负载流量后,
执行本次传输包括:
[0038]周期性获取所述用户在本业务节点的最新限流参数;
[0039]如果所述最新限流参数满足所述负载流量需求,则执行本次传输;
[0040]如果所述最新限流参数不满足所述负载流量需求,并且等待时间超过设定时间或者周期性获取所述最新限流参数的次数超过设定次数,则拒绝所述业务传输请求。
[0041]可选地,所述方法还包括:如果从所述中心节点获取最新配置信息超时或失败,则所述业务节点按照本地限流策略对各用户进行限流。
[0042]可选地,所述业务节点按照本地限流策略对各用户进行限流包括:所述业务节点按照默认配置参数对各用户进行限流。
[0043]另一方面,本专利技术实施例还提供一种分布式限流装置,所述装置包括:
[0044]集群信息获取模块,用于获取集群中当前的业务节点数、以及各业务节点的状态信息,所述状态信息包括用户数、以及各用户的负载信息;
[0045]动态调整模块,用于根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分布式限流方法,其特征在于,所述方法包括:中心节点获取集群中当前的业务节点数、以及各业务节点的状态信息,所述状态信息包括用户数、以及各用户的负载信息;根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参数;将所述限流参数下发给对应的业务节点。2.根据权利要求1所述的分布式限流方法,其特征在于,所述方法还包括:中心节点接收各业务节点上报的状态信息。3.根据权利要求1所述的分布式限流方法,其特征在于,所述根据所述业务节点数及所述各业务节点的状态信息动态调整各业务节点的限流参数包括:根据各业务节点的状态信息确定各用户的限流参数是否需要调整;如果所述用户所有业务节点的限流参数均不需要调整,则依照平均分配原则为所述用户分配各业务节点的限流参数;如果所述用户有业务节点的限流参数需要调整,则依照按需分配原则为所述用户分配各业务节点的限流参数。4.根据权利要求3所述的分布式限流方法,其特征在于,所述限流参数为以下任意一种:令牌数、QoS值。5.根据权利要求3所述的分布式限流方法,其特征在于,所述根据各业务节点的状态信息确定各用户在该业务节点的限流参数是否需要调整包括:根据各业务节点用户的负载信息确定所述用户在该业务节点是否达到动态分配条件;如果未达到,则确定所述用户在该业务节点的限流参数不需要调整;否则,确定所述用户在该业务节点的限流参数需要调整。6.根据权利要求5所述的分布式限流方法,其特征在于,所述动态分配条件为所述用户在该业务节点的负载对其限流参数的消耗占比达到设定阈值。7.根据权利要求5所述的分布式限流方法,其特征在于,所述依照按需分配原则为所述用户分配各业务节点的限流参数包括:将所述用户未达到动态分配条件的业务节点剩余的限流参数借用给达到动态分配条件的业务节点。8.根据权利要求7所述的分布式限流方法,其特征在于,按照以下公式重新确定达到动态分配条件的用户的限流参数:Qi=(Qs

m
×
Qm)/k;其中,Qi为达到动态分配条件的用户i的限流参数,Qs为用户i的总限流参数,m为用户i未达到动态分配条件的业务节点数,Qm为用户i的所述m个业务节点占用的限流参数的平均值,k为用户i达到动态分配条件的业务节点的数量。9.根据权利要求1至8任一项所述的分布式限流方法,其特征在于,所述集群中包括多个中心节点,所述多个中心节点中的一个作为主中心节点、其它作为备用中心节点;由所述主中心节点为集群中各业务节点提供服务。10.根据权利要求9所述的分布式限流方法,其特征在于,所述方法还包括:通过设定算法从所述多个中心节点中选取所述主中心节点。11.一种分布式限流方法,其特征在于,所述方法包括:
业务节点实时确定自身状态信息,所述状态信息包括用户数、以及各用户的负载信息;根据所述负载信息确定从中心节点动态获取最新配置信息的频次,并按照所述频次从所述中心节点获取最新配置信息;所述配置信息包括各用户的限流参数;根据所述用户的限流参数对所述用户进行限流。12.根据权利要求11所述的分布式限流方法,其特...

【专利技术属性】
技术研发人员:陈文博方然
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1