动态限流方法、装置及系统制造方法及图纸

技术编号:19783096 阅读:33 留言:0更新日期:2018-12-15 12:50
本说明书一个或多个实施例公开了一种动态限流方法、装置及系统,用以通过动态调整限流阈值来实现全局准确限流。所述方法应用于与服务器集群之间建立长连接的限流设备,包括:获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;根据所述限流阈值,对所述各服务器执行限流操作。

【技术实现步骤摘要】
动态限流方法、装置及系统
本说明书涉及通讯领域,尤其涉及一种动态限流方法、装置及系统。
技术介绍
在高并发、海量流量的场景中,限流成为了一种必不可少的手段。而因为存在长连接,传统的单机限流会造成负载不平衡的问题,造成用户远没达到限流值就被限制了。因此,集群限流成为了唯一的选择,而如何在分布式环境下做到全局准确限流一直是个难题。现有技术中,常用的集群限流方法有两种。一种是利用前置限流服务器先进行限流,然后再转发到真实服务器上,这种方法会存在限流服务器的单点问题,即限流服务器一旦故障,将直接影响整个系统的可用性;并且所有流量均要先走到限流服务器,造成系统延时的增加,从而影响系统性能。第二种方法是将限流令牌存入高速缓存(如redis等)中,并预分配单机令牌,一旦令牌用完就再向中央令牌库申请新的令牌。显然,这种方法同样存在中央领牌库的单点问题,且预分配的令牌如果没有用完就将一直占用着,导致令牌难以回收。
技术实现思路
本说明书一个或多个实施例的目的是提供一种动态限流方法、装置及系统,用以通过动态调整限流阈值来实现全局准确限流。为解决上述技术问题,本说明书一个或多个实施例是这样实现的:一方面,本说明书一个或多个实施例提供一种动态限流方法,应用于与服务器集群之间建立长连接的限流设备,包括:获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;根据所述限流阈值,对所述各服务器执行限流操作。在一个实施例中,所述各服务器分配有至少一个第一令牌;所述总限流阈值包括总令牌数;所述当前限流状态包括所述各服务器在所述当前工作周期内的第一令牌使用数和/或第一令牌剩余数;所述历史限流状态包括所述各服务器在所述历史工作周期内的第二令牌使用数和/或第二令牌剩余数;所述限流阈值包括令牌使用阈值;相应的,所述根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值,包括:根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数;根据所述第三令牌使用数,确定所述各服务器在所述下一个工作周期内的令牌使用阈值。在一个实施例中,所述根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数,包括:根据所述第一令牌使用数和/或所述第一令牌剩余数,确定所述各服务器在所述下一个工作周期内所需的令牌数占所述总令牌数的比例;根据所述比例及所述总令牌数,确定所述第三令牌使用数。在一个实施例中,所述根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数,包括:分析所述第二令牌使用数和/或所述第二令牌剩余数,得到分析结果;根据所述分析结果,确定所述各服务器在各工作周期内的令牌使用平均数;根据所述令牌使用平均数,确定所述第三令牌使用数。在一个实施例中,所述根据所述限流阈值,对所述各服务器执行限流操作,包括:当到达所述下一个工作周期时,为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌。在一个实施例中,所述为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌之后,还包括:确定所述下一个工作周期内的令牌生效时间;控制所述第二令牌在所述令牌生效时间到达时同时生效。另一方面,本说明书一个或多个实施例提供一种动态限流装置,应用于与服务器集群之间建立长连接的限流设备,包括:获取模块,用于获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;第一确定模块,用于根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;限流模块,用于根据所述限流阈值,对所述各服务器执行限流操作。在一个实施例中,所述各服务器分配有至少一个第一令牌;所述总限流阈值包括总令牌数;所述当前限流状态包括所述各服务器在所述当前工作周期内的第一令牌使用数和/或第一令牌剩余数;所述历史限流状态包括所述各服务器在所述历史工作周期内的第二令牌使用数和/或第二令牌剩余数;所述限流阈值包括令牌使用阈值;相应的,所述第一确定模块包括:第一确定单元,用于根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数;第二确定单元,用于根据所述第三令牌使用数,确定所述各服务器在所述下一个工作周期内的令牌使用阈值。在一个实施例中,所述第一确定单元还用于:根据所述第一令牌使用数和/或所述第一令牌剩余数,确定所述各服务器在所述下一个工作周期内所需的令牌数占所述总令牌数的比例;根据所述比例及所述总令牌数,确定所述第三令牌使用数。在一个实施例中,所述第一确定单元还用于:分析所述第二令牌使用数和/或所述第二令牌剩余数,得到分析结果;根据所述分析结果,确定所述各服务器在各工作周期内的令牌使用平均数;根据所述令牌使用平均数,确定所述第三令牌使用数。在一个实施例中,所述限流模块包括:分配单元,用于当到达所述下一个工作周期时,为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌。在一个实施例中,所述装置还包括:第二确定模块,用于所述为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌之后,确定所述下一个工作周期内的令牌生效时间;控制模块,用于控制所述第二令牌在所述令牌生效时间到达时同时生效。再一方面,本说明书一个或多个实施例提供一种动态限流系统,包括服务器集群和限流设备,所述服务器集群和限流设备之间建立有长连接;其中,所述限流设备包括:巡检器,用于获取服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;决策器,用于根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;干预器,用于根据所述限流阈值,对所述各服务器执行限流操作。再一方面,本说明书一个或多个实施例提供一种动态限流设备,应用于与服务器集群之间建立长连接的限流设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;根据所述限流阈值,对所述各服务器执行限流操作。再一方面,本申请实施例提供一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:获取与限流设备之间建立长连接的服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所本文档来自技高网...

【技术保护点】
1.一种动态限流方法,应用于与服务器集群之间建立长连接的限流设备,包括:获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;根据所述限流阈值,对所述各服务器执行限流操作。

【技术特征摘要】
1.一种动态限流方法,应用于与服务器集群之间建立长连接的限流设备,包括:获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;根据所述限流阈值,对所述各服务器执行限流操作。2.根据权利要求1所述的方法,所述各服务器分配有至少一个第一令牌;所述总限流阈值包括总令牌数;所述当前限流状态包括所述各服务器在所述当前工作周期内的第一令牌使用数和/或第一令牌剩余数;所述历史限流状态包括所述各服务器在所述历史工作周期内的第二令牌使用数和/或第二令牌剩余数;所述限流阈值包括令牌使用阈值;相应的,所述根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值,包括:根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数;根据所述第三令牌使用数,确定所述各服务器在所述下一个工作周期内的令牌使用阈值。3.根据权利要求2所述的方法,所述根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数,包括:根据所述第一令牌使用数和/或所述第一令牌剩余数,确定所述各服务器在所述下一个工作周期内所需的令牌数占所述总令牌数的比例;根据所述比例及所述总令牌数,确定所述第三令牌使用数。4.根据权利要求2所述的方法,所述根据所述第一令牌使用数、第一令牌剩余数、第二令牌使用数、第二令牌剩余数中的至少一项及所述总令牌数,确定所述各服务器在所述下一个工作周期内的第三令牌使用数,包括:分析所述第二令牌使用数和/或所述第二令牌剩余数,得到分析结果;根据所述分析结果,确定所述各服务器在各工作周期内的令牌使用平均数;根据所述令牌使用平均数,确定所述第三令牌使用数。5.根据权利要求2-4中任一项所述的方法,所述根据所述限流阈值,对所述各服务器执行限流操作,包括:当到达所述下一个工作周期时,为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌。6.根据权利要求5所述的方法,所述为所述各服务器分配与所述令牌使用阈值相应数量的第二令牌之后,还包括:确定所述下一个工作周期内的令牌生效时间;控制所述第二令牌在所述令牌生效时间到达时同时生效。7.一种动态限流装置,应用于与服务器集群之间建立长连接的限流设备,包括:获取模块,用于获取所述服务器集群中各服务器的限流状态及所述服务器集群的总限流阈值,所述限流状态包括所述各服务器在当前工作周期内的当前限流状态和/或在历史工作周期内的历史限流状态;第一确定模块,用于根据所述限流状态及所述总限流阈值,确定所述各服务器在下一个工作周期内的限流阈值;限流模块,用于根据所述限流阈值,对所述各服务器执行限流操作。8.根据权利要求7所述的装置,所述各服务器分配有至少一个第一令牌;所述总限流阈值包括总令牌数;所述当前限流状态包括所述...

【专利技术属性】
技术研发人员:贾新禹
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1