动态全局限流的方法和装置制造方法及图纸

技术编号:25958388 阅读:16 留言:0更新日期:2020-10-17 03:50
本发明专利技术公开了动态全局限流的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取服务器集群中各个服务器在当前时间窗内的请求处理数据;根据各个服务器在当前时间窗内的请求处理数据,确定服务器集群在下一个时间窗内的总限流阈值、以及各个服务器的资源分配比例;根据总限流阈值和各个服务器的资源分配比例,确定各个服务器在下一个时间窗内的限流阈值;根据各个服务器在下一个时间窗内的限流阈值对各个服务器执行限流操作。该实施方式能够根据服务器集群中各个服务器的请求处理数据自动调整服务器集群的总限流阈值和各个服务器的限流阈值,大大提高限流效果。

【技术实现步骤摘要】
动态全局限流的方法和装置
本专利技术涉及计算机
,尤其涉及一种动态全局限流的方法和装置。
技术介绍
一个后台系统的处理能力是有限的。当请求量陡增或某个内部子系统出现问题时,系统性能及稳定性通常会大幅下降,甚至发生连锁反应,导致整个系统进入不可用状态。为了保障系统可用性,一个必要的措施是对收到的请求进行限流处理,避免系统被短时间内大幅流量波动所影响。现有的全局限流一般是基于分布式缓存中设置计数器实现的固定阈值的限流,不能根据系统的情况自动调整限流阈值。
技术实现思路
有鉴于此,本专利技术实施例提供一种动态全局限流的方法和装置,能够根据服务器集群中各个服务器的请求处理数据自动调整服务器集群的总限流阈值和各个服务器的限流阈值,大大提高限流效果。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种动态全局限流的方法,包括:获取服务器集群中各个服务器在当前时间窗内的请求处理数据;根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值、以及所述各个服务器的资源分配比例;根据所述总限流阈值和所述各个服务器的资源分配比例,确定所述各个服务器在下一个时间窗内的限流阈值;根据所述各个服务器在下一个时间窗内的限流阈值对所述各个服务器执行限流操作。可选地,所述请求处理数据包括:第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数;根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:根据所述各个服务器在当前时间窗内的第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数,确定所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数;根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值。可选地,根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:判断第二超时请求数是否为零;若第二超时请求数不为零,则:确定第二请求总数与第二超时请求数之间的差值与第二请求总数的比值,以所述比值与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值;若第二超时请求数为零,则判断第二丢弃请求数是否为零;若是,则以所述服务器集群在前一个时间窗内的总限流阈值作为所述服务器集群在下一个时间窗内的总限流阈值;否则,根据预设扩大因子确定扩大系数,以所述扩大系数与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值。可选地,确定所述服务器集群在下一个时间窗内的总限流阈值之前,还包括:判断是否存在所述服务器集群在前一个时间窗内的总限流阈值;若不存在,则以第二请求总数与第二丢弃请求数之间的差值与所述当前时间窗的时间长度之间的比值作为所述服务器集群在前一个时间窗内的总限流阈值。可选地,根据所述各个服务器在当前时间窗内的请求处理数据,确定所述各个服务器的资源分配比例,包括:根据所述各个服务器在当前时间窗内的请求处理数据,确定所述各个服务器在当前时间窗内的第一请求总数;根据所述各个服务器在当前时间窗内的第一请求总数,确定所述服务器集群在当前时间窗内的第二请求总数;根据第一请求总数与第二请求总数的比值,确定所述各个服务器的资源分配比例。可选地,根据所述各个服务器在下一个时间窗内的限流阈值对所述各个服务器执行限流操作,包括:根据所述各个服务器在下一个时间窗内的限流阈值,调整所述各个服务器在下一个时间窗内的令牌生产速度。可选地,根据所述各个服务器在下一个时间窗内的限流阈值,采用指令下发的方式对所述各个服务器执行限流操作。可选地,确定所述服务器集群在下一个时间窗内的总限流阈值之后,还包括:若所述服务器集群在下一个时间窗内的总限流阈值大于设定阈值,则根据所述服务器集群在下一个时间窗内的总限流阈值与设定阈值的差值对所述服务器集群进行扩容。可选地,所述总限流阈值为所述服务器集群的每秒查询率,所述限流阈值为所述各个服务器的每秒查询率。根据本专利技术实施例的第二方面,提供一种动态全局限流的装置,包括:数据采集与限流模块,获取服务器集群中各个服务器在当前时间窗内的请求处理数据;根据所述各个服务器在下一个时间窗内的限流阈值对所述各个服务器执行限流操作;数据处理模块,根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值、以及所述各个服务器的资源分配比例;根据所述总限流阈值和所述各个服务器的资源分配比例,确定所述各个服务器在下一个时间窗内的限流阈值。可选地,所述请求处理数据包括:第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数;所述数据处理模块根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:根据所述各个服务器在当前时间窗内的第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数,确定所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数;根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值。可选地,所述数据处理模块根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:判断第二超时请求数是否为零;若第二超时请求数不为零,则:确定第二请求总数与第二超时请求数之间的差值与第二请求总数的比值,以所述比值与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值;若第二超时请求数为零,则判断第二丢弃请求数是否为零;若是,则以所述服务器集群在前一个时间窗内的总限流阈值作为所述服务器集群在下一个时间窗内的总限流阈值;否则,根据预设扩大因子确定扩大系数,以所述扩大系数与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值。可选地,所述数据处理模块还用于:确定所述服务器集群在下一个时间窗内的总限流阈值之前,判断是否存在所述服务器集群在前一个时间窗内的总限流阈值;若不存在,则以第二请求总数与第二丢弃请求数之间的差值与所述当前时间窗的时间长度之间的比值作为所述服务器集群在前一个时间窗内的总限流阈值。可选地,所述数据处理模块根据所述各个服务器在当前时间窗内的请求处理数据,确定所述各个服务器的资源分配比例,包括:根据所述本文档来自技高网...

【技术保护点】
1.一种动态全局限流的方法,其特征在于,包括:/n获取服务器集群中各个服务器在当前时间窗内的请求处理数据;/n根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值、以及所述各个服务器的资源分配比例;根据所述总限流阈值和所述各个服务器的资源分配比例,确定所述各个服务器在下一个时间窗内的限流阈值;/n根据所述各个服务器在下一个时间窗内的限流阈值对所述各个服务器执行限流操作。/n

【技术特征摘要】
1.一种动态全局限流的方法,其特征在于,包括:
获取服务器集群中各个服务器在当前时间窗内的请求处理数据;
根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值、以及所述各个服务器的资源分配比例;根据所述总限流阈值和所述各个服务器的资源分配比例,确定所述各个服务器在下一个时间窗内的限流阈值;
根据所述各个服务器在下一个时间窗内的限流阈值对所述各个服务器执行限流操作。


2.如权利要求1所述的方法,其特征在于,所述请求处理数据包括:第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数;
根据所述各个服务器在当前时间窗内的请求处理数据,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:
根据所述各个服务器在当前时间窗内的第一平均响应时间、第一请求总数、第一超时请求数、第一丢弃请求数,确定所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数;
根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值。


3.如权利要求2所述的方法,其特征在于,根据所述服务器集群在当前时间窗内的第二平均响应时间、第二请求总数、第二超时请求数、第二丢弃请求数,确定所述服务器集群在下一个时间窗内的总限流阈值,包括:
判断第二超时请求数是否为零;
若第二超时请求数不为零,则:确定第二请求总数与第二超时请求数之间的差值与第二请求总数的比值,以所述比值与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值;
若第二超时请求数为零,则判断第二丢弃请求数是否为零;若是,则以所述服务器集群在前一个时间窗内的总限流阈值作为所述服务器集群在下一个时间窗内的总限流阈值;否则,根据预设扩大因子确定扩大系数,以所述扩大系数与所述服务器集群在前一个时间窗内的总限流阈值之间的乘积作为所述服务器集群在下一个时间窗内的总限流阈值。


4.如权利要求3所述的方法,其特征在于,确定所述服务器集群在下一个时间窗内的总限流阈值之前,还包括:判断是否存在所述服务器集群在前一个时间窗内的总限流阈值;若不存在,则以第二请求总数与第二丢弃请求数之间的差值与所述当前时间窗的时间长度之间的比值作为所述服务器集群在前一个时间窗内的总限流阈值。

【专利技术属性】
技术研发人员:张涛张峻浩姜波
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1