CN109039937A - 动态限流方法、装置、计算机设备和存储介质 - Google Patents
动态限流方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109039937A CN109039937A CN201811123719.9A CN201811123719A CN109039937A CN 109039937 A CN109039937 A CN 109039937A CN 201811123719 A CN201811123719 A CN 201811123719A CN 109039937 A CN109039937 A CN 109039937A
- Authority
- CN
- China
- Prior art keywords
- current limliting
- interface
- parameter
- current
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Telephonic Communication Services (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种动态限流方法、装置、计算机设备和存储介质,通过在预设时间段自动触发数据获取指令,获取当前预设时间内的接口相关参数信息及限流参数更新记录相关信息,并将当前预设时间内的接口相关参数信息生成接口访问统计表,对接口访问统计表及限流参数更新记录相关信息进行分析。确定出限流参数,根据确定的限流参数进行限流。解决了不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的问题。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种动态限流方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的不断发展,很多需求都可以通过互联网技术实现,越来越多的用户运用互联网技术办理所需的业务,当有很多用户同时访问同一个业务应用系统时,由于业务应用系统的负载能力有限,很有可能超出预期访问的最大限度,使得系统压力过大而拖垮业务应用系统。从而需要对业务应用系统访问量进行限流,而目前的限流方式是:限流某个接口的总并发/请求数,接口可能会有突发访问情况,但又担心访问量太大造成崩溃,如抢购业务,就需要限制这个接口的总并发/请求数总请求数,可以为每个接口都设置相应的阀值,限制发/请求数总请求数,但只能根据预先设置的阀值进行总流量的动态限流。
因此,不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口(Application Programming Interface,应用程序编程接口)的限流要求。
发明内容
基于此,有必要针对上述技术问题,提供一种能够根据实际监控数据进行限流参数的动态调整,且达到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的动态限流方法、装置、计算机设备和存储介质。
一种动态限流方法,所述方法包括:
在预设时间段内触发数据获取指令;
根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;
获取限流参数更新表;
根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数;
将所述限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
在其中一个实施例中,所述根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表的步骤包括:
根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表;
或者,根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
在其中一个实施例中,所述根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数的步骤包括:
获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;
根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数;
或者,获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;
根据确定的异常参数信息的接口信息,确定限流参数。
在其中一个实施例中,所述获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向的步骤包括:
当所述返回编码429的次数大于预设次数,且所述返回非429编码和所述非200编码的次数均为0时,确定限流参数调整方向为增加;
当所述返回非429编码和所述非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。
在其中一个实施例中,所述根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数的步骤包括:
当所述限流参数调整方向为增加时,获取所述限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例;
根据增加比例,确定限流参数;
当所述限流参数调整方向为减少时,获取所述限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例;
根据减少比例,确定限流参数。
在其中一个实施例中,所述获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息的步骤包括:
获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;
根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。
在其中一个实施例中,所述根据确定的异常参数信息的接口信息,确定限流参数的步骤包括:
根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
一种动态限流装置,所述装置包括:
数据获取指令触发模块,用于在预设时间段内触发数据获取指令;
统计表生成模块,用于根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;
更新记录获取模块,用于获取限流参数更新表;
限流参数确定模块,用于根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数;
限流模块,用于将所述限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的方法的步骤。
上述动态限流方法、装置、计算机设备和存储介质,通过在预设时间段内自动触发数据获取指令,获取当前预设时间内的接口相关参数信息及限流参数更新记录相关信息,并将当前预设时间内的接口相关参数信息生成接口访问统计表,对接口访问统计表及限流参数更新记录相关信息进行分析。确定出限流参数,根据确定的限流参数进行限流。解决了不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的问题。
附图说明
图1为一个实施例中动态限流方法的应用场景图;
图2为一个实施例中动态限流方法的流程示意图;
图3为一个实施例中动态限流方法的交互流程示意图;
图4为一个实施例中动态限流装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的动态限流方法,可以应用于如图1所示的应用环境中。其中,其工作环境涉及动态限流分析服务器100,第一数据服务器101、第二数据库服务器102、任务控制服务器103、监听服务器104、Nginx服务器105、应用服务器106相互之间可以通过网络进行通信,动态限流分析服务器100通过向任务控制服务器103获取任务,根据任务向第一数据服务器101、第二数据库服务器102获取相关数据进行分析,将分析结果发送至监听服务器104更新当前限流参数,Nginx服务器105通过向监听服务器104获取当前限流参数对应用服务器106中的各个接口进行限流。
在一个实施例中,如图2所示,提供了一种动态限流方法,以该方法应用于图1中的服务器100为例进行说明,包括步骤S220至步骤S300:
步骤S220,在预设时间段内触发数据获取指令。
其中,用户可以通过在任务控制服务器中设置触发数据获取指令的时间间隔,可以根据实际情况进行设置,通过向任务控制服务器获取触发数据获取指令的时间间隔信息,自动触发数据获取指令。
步骤S240,根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表。
其中,当前预设时间内的接口相关参数信息为上一次获取接口相关参数信息之后,到当前时间点产生的接口相关参数信息。预设时间内的时间长度与触发数据获取指令的时间间隔长度相同。将初始预设时间内的产生的接口相关参数信息记录下来,生成接口访问统计表(如表1),后续预设时间内的产生的接口相关参数信息增加到接口访问统计表中,更新接口访问统计表即可。
表1
步骤S260,获取限流参数更新表。
其中,限流参数更新表是在每次进行限流参数调整时,用于记录限流参数调整情况的表,限流参数更新表中的初始的限流参数是从监听服务器获取的初始限流参数,后续发生限流参数调整时,将调整的数据记录在限流参数更新表(如表2)中。
表2
步骤S280,根据接口访问统计表及限流参数更新表进行分析,确定限流参数。
其中,根据接口访问统计表中的各个访问信息,可以确定各个接口访问的情况,从而确定是否需要限流,根据限流参数更新表中限流参数更新的情况,可以进一步确定限流参数调整力度,从而使得合理的调整限流参数,既不会使访问量突然过大,也不会浪费资源。
步骤S300,将限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
其中,监听服务器用于获取每次确定的限流参数,将当前限流参数更新为新获取到的限流参数,并存储,使得Nginx服务器向监听服务器获取监听服务器的当前限流参数,对应用系统的各个接口进行限流。
上述动态限流方法,通过在预设时间段自动触发数据获取指令,获取当前预设时间内的接口相关参数信息及限流参数更新记录相关信息,并将当前预设时间内的接口相关参数信息生成接口访问统计表,对接口访问统计表及限流参数更新记录相关信息进行分析。确定出限流参数,根据确定的限流参数进行限流。解决了不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的问题。
一个实施例中,根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表的步骤包括:根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表。
其中,调用shell脚本,统计根据第一数据服务器上的日志,统计当前预设时间内所有接口的接口相关参数信息(接口相关参数信息包括:每秒的所有接口,及每个接口的调用次数等等),例如:假设用户设定触发数据获取指令的时间间隔为1分钟,则统计1分钟之内的每秒所有接口,及每个接口的调用次数。第一数据服务器用于记录应用服务器的接口访问情况。
一个实施例中,根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表的步骤包括:根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
其中,第二数据服务器用于监控应用服务器的接口访问情况,可以通过获取第二数据服务器实时的监控数据,监控数据包括:所有接口的接口相关参数信息(接口相关参数信息包括:每秒的所有接口,及每个接口的调用次数等等),生成接口访问统计表。
一个实施例中,根据接口访问统计表及限流参数更新表进行分析,确定限流参数的步骤包括:
获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数。
其中,429指的是:客户端请求时反馈的状态码,表示太多请求;200指的是:客户端请求时反馈的状态码,表示服务器已成功处理了请求。根据当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,可以确定当前接口访问情况,是否可以放大访问数量,或缩小访问数量,并根据前一次调整的情况综合考虑需要调整的范围。
一个实施例中,根据接口访问统计表及限流参数更新表进行分析,确定限流参数的步骤包括:获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;根据确定的异常参数信息的接口信息,确定限流参数。
其中,请求接口信息、请求参数信息可以是如表3中的请求接口信息及请求参数信息:
表3
一个实施例中,获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向的步骤包括:当返回编码429的次数大于预设次数,且返回非429编码和非200编码的次数均为0时,确定限流参数调整方向为增加;当返回非429编码和非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。
其中,假设接口访问统计表获取新数据的当前预设时间间隔为1分钟,不仅获取当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,还获取前4分钟内返回编码429的次数、返回非429编码和非200编码的次数,总共获取5分钟内返回编码429的次数、返回非429编码和非200编码的次数。5分钟内返回编码429的次数大于5次,且返回非429编码和非200编码的次数均为0时,则需要将限流的增加限流值,当限流算法为令牌桶时,调整rate值增加X%,capacity为rate的2倍;限流算法为并发的调整capacity的值增加X%;5分钟内返回非429编码和非200编码的次数均大于5次时,则需要将限流的增加限流减少,限流算法为令牌桶的,调整rate和capacity的值各减少Y%;限流算法为并发的调整capacity的值减少Y%。
一个实施例中,根据限流参数调整方向以及限流参数更新表,确定限流参数的步骤包括:当限流参数调整方向为增加时,获取限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例,根据增加比例,确定限流参数;当限流参数调整方向为减少时,获取所限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例,根据减少比例,确定限流参数。
其中,当限流参数调整方向为增加时,调整的初始比例默认为10%,当限流参数更新表里面读取上一次的对应的参数的最后更新的记录(最新一次的更新的限流参数信息),最新一次的更新的限流参数信息是增加,则此次增加10%,则限流参数为:在当前限流参数的基础上再增加10%;最新一次的更新的限流参数信息是减少,则再获取最新一次的更新时间,更新时间和现在的时间,时间间隔在2分钟之内,则增加的百分比数值为上次减少的1/2(如:上次减少10%,那么此时增加5%),则限流参数为:在当前限流参数的基础上再增加5%。当限流参数调整方向为减少时,调整的初始比例默认为10%,当限流参数更新表里面读取上一次的对应的参数的最后更新的记录(最新一次的更新的限流参数信息),最新一次的更新的限流参数信息是减少,则此次减少10%,则限流参数为:在当前限流参数的基础上减少10%,最新一次的更新的限流参数信息是增加,则此次减少的百分比数值为上次增加的1/2(如:上次增加10%,那么此时减少5%),则限流参数为:在当前限流参数的基础上减少10%。
一个实施例中,获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息的步骤包括:获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。
其中,获取接口访问统计表中实际访问的请求接口信息、请求参数信息进行分析,进行分类统计,如:针对string类型,设置白名单,根据设置的白名单,来统计该白名单中存在的key值(对应参数值)的访问次数;针对Int,每分钟将最大值-最小值,再100等分,得到访问数最多的TOP10;针对Boolean,针对true和false设置不同的限流参数。针对枚举,枚举需要在表格里面维护参数名称。监控记录每一个API的某个枚举参数的每一个枚举值的访问量,取访问量前10的枚举值。利用计算曲线的相似度(直接根据数据计算即可)将以上每一个统计组的访问次数作为纵轴,将时间作为横轴划出曲线。把整条曲线1求平均值,每个点减平均值,得出曲线2,求出曲线2和零点的平均距离,然后曲线2每个点除以平均距离,得出趋势图。然后使用欧几里德距离计算出两条曲线的相关性,找出相关性较近的一类或者某一个数据组合,确定出异常参数信息的接口信息。
一个实施例中,根据确定的异常参数信息的接口信息,确定限流参数的步骤包括:根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
其中,根据异常参数信息可以找出可能会导致访问异常的情况出现的原因,从而对于会导致访问异常的情况出现的接口进行限制,比如:选取达到告警阀值前一段时间内最大访问量的参数值作为限流参数。
上述动态限流方法,通过在预设时间段自动触发数据获取指令,获取当前预设时间内的接口相关参数信息及限流参数更新记录相关信息,并将当前预设时间内的接口相关参数信息生成接口访问统计表,对接口访问统计表及限流参数更新记录相关信息进行分析。确定出限流参数,根据确定的限流参数进行限流。解决了不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的问题。
在一个实施例中,一种动态限流方法,请参阅图3,用户通过在任务控制服务器中设置触发数据获取指令的时间间隔,动态限流分析服务器向任务控制服务器获取触发数据获取指令的时间间隔信息,动态限流分析服务器根据时间间隔信息自动触发数据获取指令,向第一数据服务器或者第二数据库服务器获取接口相关参数信息,生成接口访问统计表,并结合存储的限流参数更新表进行分析,确定限流参数,将确定的限流参数发送给监听服务器,监听服务器更新当前的限流参数,Nginx服务器实时获取监听服务器的限流参数,根据从监听服务器的获取的限流参数对应用服务器进行限流。
上述动态限流方法,通过在预设时间段自动触发数据获取指令,获取当前预设时间内的接口相关参数信息及限流参数更新记录相关信息,并将当前预设时间内的接口相关参数信息生成接口访问统计表,对接口访问统计表及限流参数更新记录相关信息进行分析。确定出限流参数,根据确定的限流参数进行限流。解决了不能根据实际监控数据进行限流参数的动态调整,达不到业务系统对于不同渠道方(根据不同渠道参数)、不同API接口的限流要求的问题。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种动态限流装置,包括:数据获取指令触发模块,用于在预设时间段内触发数据获取指令;统计表生成模块,用于根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;更新记录获取模块,用于获取限流参数更新表;限流参数确定模块,用于根据接口访问统计表及限流参数更新表进行分析,确定限流参数;限流模块,用于将限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
在一个实施例中,统计表生成模块还用于根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表;或者,根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
在一个实施例中,限流模块包括:第一限流参数确定单元,用于获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数;第二限流参数确定单元,用于获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;根据确定的异常参数信息的接口信息,确定限流参数。
在一个实施例中,第一限流参数确定单元还用于:当所述返回编码429的次数大于预设次数,且所述返回非429编码和所述非200编码的次数均为0时,确定限流参数调整方向为增加;当所述返回非429编码和所述非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。当限流参数调整方向为增加时,获取限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例;根据增加比例,确定限流参数;当所述限流参数调整方向为减少时,获取限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例;根据减少比例,确定限流参数。
在一个实施例中,第二限流参数确定单元还用于获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
关于动态限流装置的具体限定可以参见上文中对于动态限流方法的限定,在此不再赘述。上述动态限流装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口访问相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种动态限流方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
在预设时间段内触发数据获取指令;根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;获取限流参数更新表;根据接口访问统计表及限流参数更新表进行分析,确定限流参数;将限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表;或者,根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;根据限流参数调整方向以及限流参数更新表,确定限流参数;或者,获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;根据确定的异常参数信息的接口信息,确定限流参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当返回编码429的次数大于预设次数,且返回非429编码和所述非200编码的次数均为0时,确定限流参数调整方向为增加;当返回非429编码和所述非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当限流参数调整方向为增加时,获取限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例;根据增加比例,确定限流参数;当限流参数调整方向为减少时,获取限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例;根据减少比例,确定限流参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在预设时间段内触发数据获取指令;根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;获取限流参数更新表;根据接口访问统计表及限流参数更新表进行分析,确定限流参数;将限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表;或者,根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;根据限流参数调整方向以及限流参数更新表,确定限流参数;或者,获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;根据确定的异常参数信息的接口信息,确定限流参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当返回编码429的次数大于预设次数,且返回非429编码和所述非200编码的次数均为0时,确定限流参数调整方向为增加;当返回非429编码和所述非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当限流参数调整方向为增加时,获取限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例;根据增加比例,确定限流参数;当限流参数调整方向为减少时,获取限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例;根据减少比例,确定限流参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种动态限流方法,所述方法包括:
在预设时间段内触发数据获取指令;
根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;
获取限流参数更新表;
根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数;
将所述限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
2.根据权利要求1所述的动态限流方法,其特征在于,所述根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表的步骤包括:
根据触发的数据获取指令调用shell脚本,向第一数据服务器获取日志信息中的当前预设时间内的接口相关参数信息,生成接口访问统计表;
或者,根据触发的数据获取指令向第二数据服务器获取实时的接口访问监控数据,根据实时的监控数据生成接口访问统计表。
3.根据权利要求1所述的动态限流方法,其特征在于,所述根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数的步骤包括:
获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向;
根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数;
或者,获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息;
根据确定的异常参数信息的接口信息,确定限流参数。
4.根据权利要求3所述的动态限流方法,其特征在于,所述获取接口访问统计表中当前预设时间内返回编码429的次数、返回非429编码和非200编码的次数,确定限流参数调整方向的步骤包括:
当所述返回编码429的次数大于预设次数,且所述返回非429编码和所述非200编码的次数均为0时,确定限流参数调整方向为增加;
当所述返回非429编码和所述非200编码的次数均大于预设次数时,确定限流参数调整方向为减少。
5.根据权利要求4所述的动态限流方法,其特征在于,所述根据所述限流参数调整方向以及所述限流参数更新表,确定限流参数的步骤包括:
当所述限流参数调整方向为增加时,获取所述限流参数更新表中最新一次的更新的限流参数信息,根据最新一次更新的限流参数信息,确定增加比例;
根据增加比例,确定限流参数;
当所述限流参数调整方向为减少时,获取所述限流参数更新表中最新一次更新的限流参数信息及最新一次更新的时间,根据最新一次更新的限流参数信息及最新一次更新的时间,确定减少比例;
根据减少比例,确定限流参数。
6.根据权利要求3所述的动态限流方法,其特征在于,所述获取接口访问统计表中实际访问的请求接口信息、请求参数信息,确定出异常参数信息的接口信息的步骤包括:
获取接口访问统计表中实际访问的请求接口信息、请求参数信息,获得各接口访问的曲线信息;
根据各接口访问的曲线信息得出曲线之间的相关性,确定出异常参数信息的接口信息。
7.根据权利要求3所述的动态限流方法,其特征在于,所述根据确定的异常参数信息的接口信息,确定限流参数的步骤包括:
根据异常参数信息的接口信息,确定出需要限制访问的接口信息,将所述接口信息作为限流参数。
8.一种动态限流装置,其特征在于,所述装置包括:
数据获取指令触发模块,用于在预设时间段内触发数据获取指令;
统计表生成模块,用于根据触发的数据获取指令向数据服务器获取当前预设时间内的接口相关参数信息,生成接口访问统计表;
更新记录获取模块,用于获取限流参数更新表;
限流参数确定模块,用于根据所述接口访问统计表及限流参数更新表进行分析,确定限流参数;
限流模块,用于将所述限流参数发送至监听服务器,使监听服务器更新当前限流参数,使得Nginx服务器通过获取监听服务器的当前限流参数进行限流。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811123719.9A CN109039937B (zh) | 2018-09-26 | 2018-09-26 | 动态限流方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811123719.9A CN109039937B (zh) | 2018-09-26 | 2018-09-26 | 动态限流方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039937A true CN109039937A (zh) | 2018-12-18 |
CN109039937B CN109039937B (zh) | 2023-05-12 |
Family
ID=64618090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811123719.9A Active CN109039937B (zh) | 2018-09-26 | 2018-09-26 | 动态限流方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039937B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710447A (zh) * | 2019-01-08 | 2019-05-03 | 网易无尾熊(杭州)科技有限公司 | 用于数据访问的方法、装置、介质和计算设备 |
CN109861920A (zh) * | 2019-01-16 | 2019-06-07 | 深圳市融汇通金科技有限公司 | 一种弹性限流的方法及装置 |
CN110262951A (zh) * | 2019-06-10 | 2019-09-20 | 天翼电子商务有限公司 | 一种业务秒级监控方法及系统、存储介质及客户端 |
CN110324407A (zh) * | 2019-06-04 | 2019-10-11 | 贝壳技术有限公司 | 后台服务器的访问控制方法、装置及存储介质 |
CN111092883A (zh) * | 2019-12-16 | 2020-05-01 | 重庆锐云科技有限公司 | 用户访问记录自动生成方法、装置、网络设备及存储介质 |
CN111353132A (zh) * | 2018-12-20 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种应用程序限制使用的方法及设备 |
CN111478857A (zh) * | 2019-01-24 | 2020-07-31 | 北京嘀嘀无限科技发展有限公司 | 一种接口限流控制方法、装置以及电子设备 |
CN112925489A (zh) * | 2021-03-15 | 2021-06-08 | 中国平安财产保险股份有限公司 | 打印日志的方法、装置和计算机设备 |
CN113472679A (zh) * | 2021-09-02 | 2021-10-01 | 杭州星犀科技有限公司 | 接口限流方法和系统 |
CN113890853A (zh) * | 2021-09-27 | 2022-01-04 | 北京字跳网络技术有限公司 | 一种限流方法、装置、存储介质及电子设备 |
CN114553791A (zh) * | 2022-01-19 | 2022-05-27 | 浙江百应科技有限公司 | 一种外部接口限流方法、装置、电子设备以及存储介质 |
CN115145950A (zh) * | 2022-07-04 | 2022-10-04 | 北京鼎泰智源科技有限公司 | 一种涉诉大数据应用接口对接方法 |
WO2022252546A1 (zh) * | 2021-06-04 | 2022-12-08 | 深圳前海微众银行股份有限公司 | 一种信息调节方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120226800A1 (en) * | 2011-03-03 | 2012-09-06 | International Business Machines Corporation | Regulating network bandwidth in a virtualized environment |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
CN108566304A (zh) * | 2018-04-26 | 2018-09-21 | 努比亚技术有限公司 | 接口控制方法、电子设备及计算机可读存储介质 |
CN108572898A (zh) * | 2017-03-07 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 一种控制接口的方法、装置、设备、以及存储介质 |
-
2018
- 2018-09-26 CN CN201811123719.9A patent/CN109039937B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120226800A1 (en) * | 2011-03-03 | 2012-09-06 | International Business Machines Corporation | Regulating network bandwidth in a virtualized environment |
CN108572898A (zh) * | 2017-03-07 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 一种控制接口的方法、装置、设备、以及存储介质 |
CN108073465A (zh) * | 2017-12-29 | 2018-05-25 | 中国平安人寿保险股份有限公司 | 动态限流方法、Nginx服务器、存储介质及装置 |
CN108566304A (zh) * | 2018-04-26 | 2018-09-21 | 努比亚技术有限公司 | 接口控制方法、电子设备及计算机可读存储介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353132A (zh) * | 2018-12-20 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种应用程序限制使用的方法及设备 |
CN109710447A (zh) * | 2019-01-08 | 2019-05-03 | 网易无尾熊(杭州)科技有限公司 | 用于数据访问的方法、装置、介质和计算设备 |
CN109861920A (zh) * | 2019-01-16 | 2019-06-07 | 深圳市融汇通金科技有限公司 | 一种弹性限流的方法及装置 |
CN111478857B (zh) * | 2019-01-24 | 2023-06-13 | 北京嘀嘀无限科技发展有限公司 | 一种接口限流控制方法、装置以及电子设备 |
CN111478857A (zh) * | 2019-01-24 | 2020-07-31 | 北京嘀嘀无限科技发展有限公司 | 一种接口限流控制方法、装置以及电子设备 |
CN110324407A (zh) * | 2019-06-04 | 2019-10-11 | 贝壳技术有限公司 | 后台服务器的访问控制方法、装置及存储介质 |
CN110324407B (zh) * | 2019-06-04 | 2021-03-02 | 贝壳找房(北京)科技有限公司 | 后台服务器的访问控制方法、装置及存储介质 |
CN110262951A (zh) * | 2019-06-10 | 2019-09-20 | 天翼电子商务有限公司 | 一种业务秒级监控方法及系统、存储介质及客户端 |
CN111092883A (zh) * | 2019-12-16 | 2020-05-01 | 重庆锐云科技有限公司 | 用户访问记录自动生成方法、装置、网络设备及存储介质 |
CN112925489A (zh) * | 2021-03-15 | 2021-06-08 | 中国平安财产保险股份有限公司 | 打印日志的方法、装置和计算机设备 |
CN112925489B (zh) * | 2021-03-15 | 2023-02-03 | 中国平安财产保险股份有限公司 | 打印日志的方法、装置和计算机设备 |
WO2022252546A1 (zh) * | 2021-06-04 | 2022-12-08 | 深圳前海微众银行股份有限公司 | 一种信息调节方法、设备及存储介质 |
CN113472679A (zh) * | 2021-09-02 | 2021-10-01 | 杭州星犀科技有限公司 | 接口限流方法和系统 |
CN113890853A (zh) * | 2021-09-27 | 2022-01-04 | 北京字跳网络技术有限公司 | 一种限流方法、装置、存储介质及电子设备 |
CN113890853B (zh) * | 2021-09-27 | 2024-04-19 | 北京字跳网络技术有限公司 | 一种限流方法、装置、存储介质及电子设备 |
CN114553791A (zh) * | 2022-01-19 | 2022-05-27 | 浙江百应科技有限公司 | 一种外部接口限流方法、装置、电子设备以及存储介质 |
CN115145950A (zh) * | 2022-07-04 | 2022-10-04 | 北京鼎泰智源科技有限公司 | 一种涉诉大数据应用接口对接方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109039937B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039937A (zh) | 动态限流方法、装置、计算机设备和存储介质 | |
CN110490594A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN109815013A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN110851159B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN110363645A (zh) | 资产数据处理方法、装置、计算机设备和存储介质 | |
CN111176565B (zh) | 确定应用的存储负载的方法和设备 | |
CN107168857B (zh) | 一种统计应用程序中的函数调用的方法及组件 | |
CN110147934A (zh) | 业务请求处理方法、装置、计算机设备和存储介质 | |
CN108334633B (zh) | 数据更新方法、装置、计算机设备和存储介质 | |
CN110084606A (zh) | 风险控制方法、装置、计算机设备和存储介质 | |
CN109857373A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN110213585A (zh) | 视频编码方法、装置、计算机可读存储介质和计算机设备 | |
CN113342603B (zh) | 告警数据处理方法、装置、计算机设备和存储介质 | |
CN109714201B (zh) | 网络系统可靠性评估方法、装置、计算机设备和存储介质 | |
Zhang et al. | Post-streaming wastage analysis–a data wastage aware framework in mobile video streaming | |
CN112351250A (zh) | 编码参数调整方法、装置及设备、存储介质 | |
CN110084476B (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
CN115834443A (zh) | 流量回放方法、装置、计算机设备和存储介质 | |
CN111723017A (zh) | 系统容量测试方法、装置、计算机设备及存储介质 | |
CN108491315A (zh) | 页面驻留时长的统计方法、装置及计算机可读存储介质 | |
CN111309571A (zh) | 业务数据控制方法、装置、计算机设备和存储介质 | |
CN113434192B (zh) | 基于sdk平台的打包方法、装置以及计算机设备 | |
CN116342256A (zh) | 风控策略测试方法、装置、计算机设备和存储介质 | |
CN110321512A (zh) | 产品发布方法、装置、计算机设备和存储介质 | |
US11430488B2 (en) | System and method for generating a compression invariant motion timeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |