CN113890853B - 一种限流方法、装置、存储介质及电子设备 - Google Patents
一种限流方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113890853B CN113890853B CN202111135790.0A CN202111135790A CN113890853B CN 113890853 B CN113890853 B CN 113890853B CN 202111135790 A CN202111135790 A CN 202111135790A CN 113890853 B CN113890853 B CN 113890853B
- Authority
- CN
- China
- Prior art keywords
- flow
- limiting
- parameter
- preset
- requester
- 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.)
- Active
Links
- 230000000670 limiting effect Effects 0.000 title claims abstract description 256
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 40
- 238000004590 computer program Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000010751 BS 2869 Class A2 Substances 0.000 description 1
- 239000010749 BS 2869 Class C1 Substances 0.000 description 1
- 239000010750 BS 2869 Class C2 Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种限流方法、装置、存储介质及电子设备,该方法包括:为预定接口配置基于数据集的流量限制条件,其中,数据集被配置为表征调用预定接口的至少一个请求方的集合;在预定接口接收到调用请求时,获取流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。本公开通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
Description
技术领域
本公开涉及通信技术领域,特别涉及一种限流方法、装置、存储介质及电子设备。
背景技术
为了防止在高并发、大流量下保护系统正常运行,通常需要使用限流器对请求访问进行限流。目前常用的限流方式主要有两种:单机限流和分布式限流两种;通常意义上分布式限流只能实现对接口的限流,即对任意调用该接口的所有调用请求,均基于相同的限流方式进行限制。上述限流方法无法解决特定场景的限流问题。
发明内容
本公开实施例的目的在于提供一种限流方法、装置、存储介质及电子设备,用以解决现有技术中只能基于接口维度进行限流,无法实现精细化限流方案的问题。
本公开的实施例采用如下技术方案:一种限流方法,包括:为预定接口配置基于数据集的流量限制条件,其中,所述数据集被配置为表征调用所述预定接口的至少一个请求方的集合;在所述预定接口接收到调用请求时,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
在一些实施例中,所述数据集至少包括:至少一个值集和/或至少一个参数集;其中,所述值集为至少一个预定参数中的至少一个参数值的集合,所述预设参数由预定接口定义,不同的所述预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;所述参数集为至少一个自定义参数的集合,所述自定义参数由所述请求方基于所述预定接口定义的扩展字段进行定义,不同的所述自定义参数用于表征不同的所述请求方。
在一些实施例中,所述获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输,包括:在所有所述值集中确定第一值集所对应的第一流量限制条件,其中,所述第一值集为所有值集中包含所述预定参数最多的值集;和/或,在所有所述参数集中确定第二参数集所对应的第二流量限制条件,其中,所述第二参数集为所有参数集中具有自定义参数的数量最多的参数集;获取所述第一流量限制条件和/或第二流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
在一些实施例中,在所述数据集包括至少一个参数集的情况下,为预定接口配置基于数据集的流量限制条件,包括:为至少一个所述参数集中的每个所述参数集分配权重占比;所述获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输,包括:在所有所述参数集中确定所述权重占比最高的第三参数集所对应的第三流量限制条件;获取所述第三流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
在一些实施例中,为预定接口配置基于数据集的流量限制条件,包括:基于所述预定接口的总限制流量配置所述数据集中各请求方对应的预设限制流量,其中,对于任意一个流量限制条件中的所有请求方,所述所有请求方对应的预设限制流量的和值小于或等于所述总限制流量。
在一些实施例中,所述调用请求中携带有值集和/或参数集,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输包括:基于所述调用请求中携带的所述值集和/或参数集,确定与所述调用请求的请求方对应的预设限制流量,在允许向所述请求方反馈所述调用请求所请求的数据时,基于所述值集和/或参数集向所述请求方反馈对应的数据。
本公开的实施例还提供了一种限流装置,设置在预定接口中,所述限流装置至少包括:配置模块,用于为预定接口配置基于数据集的流量限制条件,其中,所述数据集被配置为表征调用所述预定接口的至少一个请求方的集合;限流模块,用于在所述预定接口接收到调用请求时,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
在一些实施例中,所述数据集至少包括:至少一个值集和/或至少一个参数集;其中,所述值集为至少一个预定参数中的至少一个参数值的集合,所述预设参数由预定接口定义,不同的所述预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;所述参数集为至少一个自定义参数的集合,所述自定义参数由所述请求方基于所述预定接口定义的扩展字段进行定义,不同的所述自定义参数用于表征不同的所述请求方。
本公开的实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,在所述计算机程序被处理器执行时,执行上述的限流方法的步骤。
本公开的实施例还提供了一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述的限流方法的步骤。
本公开实施例的有益效果在于:通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开第一实施例中限流方法的流程图;
图2为本公开第二实施例中限流装置的结构示意图;
图3为本公开第四实施例中电子设备的结构示意图。
具体实施方式
此处参考附图描述本公开的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且与上面给出的对本公开的大致描述以及下面给出的对实施例的详细描述一起用于解释本公开的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本公开的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本公开进行了描述,但本领域技术人员能够确定地实现本公开的很多其它等效形式,它们具有如权利要求的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本公开的具体实施例;然而,应当理解,所申请的实施例仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。
为了防止在高并发、大流量下保护系统正常运行,通常需要使用限流器对请求访问进行限流。目前常用的限流方式主要有两种:单机限流和分布式限流两种;通常意义上分布式限流只能实现对接口的限流,即对任意调用该接口的所有调用请求,均基于相同的限流方式进行限制,无法实现更精细化的限流方案。
为了解决上述问题,本公开第一实施例提供了一种限流方法,其主要应用于大型分布式通信场景中,通信场景中存在多个请求方向同一个接口发出调用请求以请求服务器或网络提供的数据或功能。本实施例的限流方法的流程图如图1所示,主要包括步骤S10和S20:
S10,为预定接口配置基于数据集的流量限制条件;
S20,在预定接口接收到调用请求时,获取流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
在请求方向预定接口发出调用请求时,预定接口获取当前所使用的流量限制条件中当前请求方对应的预设限制流量,并根据预设限制流量实现与请求方之间的数据传输,使接口与请求方之间实际的每秒查询率(QPS,Queries-per-second)不超过流量限制条件中所限定的最大QPS值。预定接口可以是服务器或网络向外提供数据或功能的接口,其具体可以提供的数据或功能根据实际需求为准,本实施例不进行此方面的限制。
本实施例中的数据集主要被配置为用于表征调用服务器或网络的预定接口的至少一个请求方的集合,而基于数据集的流量限制条件则为基于请求方的流量限制条件。具体地,请求方在向预定接口发送调用请求时,该调用请求中至少存在一个参数或者一个参数的具体值表征了该请求方的唯一的身份,因此,在基于数据集进行流量限制条件的配置时,可以基于调用请求中用于表征请求方身份的具体参数或具体值进行流量限制条件的配置。
具体地,数据集至少包括至少一个值集和/或至少一个参数集。其中,值集为至少一个预定参数中的至少一个参数值的集合。具体地,预定参数由预定接口定义,是预定接口所规定的用于表征请求方身份的参数,而不同的预定参数之间可以表征请求方身份的不同维度,即可以通过不同的预定参数来表示同一个请求主体内更细化的请求方,而在同一个预定参数下的不同参数值则表示在该维度下的不同请求方。例如:预定接口至少包含预定参数1、预定参数2以及预定参数3共三个预定参数;其中,预定参数1用于表示“请求方名称”,其具体可以对应的参数值为001至003,其中,001对应应用程序A、002对应应用程序B、003对应应用程序C;预定参数2则可以表示“请求方分类”,其具体可以对应的参数值为004至010,其中,004对应应用程序A中的分类A1、005表示应用程序A的分类A2、006对应应用程序B的分类B1、007对应应用程序B的分类B2、008对应应用程序C的分类C1、009对应应用程序C的分类C2、010对应应用程序C的分类C3;预定参数3则表示“请求方频道”,其具体可以对应的参数值为011至015,其中,011对应应用程序A中的分类A1中的频道A11、012对应应用程序A中的分类A1中的频道A12,以此类推,015对应应用程序A中的分类A1中的频道A15。
实际实现时,应用程序A可以为A新闻程序,分类A1为体育新闻分类,分类A2为教育新闻分类,频道A11为国内篮球,频道A12为国际篮球,频道A13为国际足球,频道A14为田径新闻,频道A15为游泳新闻。当然也可根据实际情况进行其他参数值以及对应请求方、请求方分类、请求方频道等内容的对应,上述参数值以及对应情况仅仅为一示例参考,便于后续进行举例说明。
在基于值集进行流量限制时,可以将不同预定参数的不同参数值形成一个集合后进行限流,例如:将预定参数1的参数值001和参数值003作为值集1,限制其流量为3000QPS;同时限定预定参数2的参数值007作为值集2,限制其流量为1000QPS,在预定接口的总限制流量为5000QPS的情况下,未进行基于值集流量限制的其他预定参数或者其他参数值则共用剩余的1000QPS。在这种情况下,当预定接口接收到请求方的调用请求时,可以基于调用请求中各个预定参数的具体参数值来确定当前发送调用请求的请求方具体是哪一个请求方,结合预先设置的流量限制条件,基于请求方对应的预设限制流量进行数据传输。例如,当前接收到的调用请求中预定参数1的参数值为003,则预定接口判定当前调用请求为应用程序C发出的,基于值集1的限定情况,按照3000QPS的流量限制进行与应用程序C之间的数据传输;当预定接口接收到的调用请求中预定参数1的参数值为002,预定参数2的参数值为007时,则预定接口判定当前调用请求为应用程序B的分类B2发出的,基于值集2的限定情况,按照1000QPS的流量限制进行与应用程序B的分类B2之间的数据传输。
通过参数集内各个参数的组合、或者值集内的各个数值,来识别出携带有相应参数集或数值的访问请求来自哪一请求方,可以精准便捷地确定该请求方的预设限制流量。而且,上述值集和参数集,也可以表示请求方查询该接口所要获取的信息,接口可以基于访问请求中的值集和/或参数集返回对应的信息,从而,上述值集和参数集一方面起到了用于确定从接口获取哪些信息的作用,另一方面,也可以被用于识别请求方,进而确定限流措施,这种双重作用,可以使得访问请求中携带的参数可以尽量少,例如可以不用另外携带专门用于标识请求来源的身份标识(ID)信息,还可以实现更加细致化的限流,从而适应多样的业务需求,例如,除了按照较宽的类别对业务进行限流以外,还可以进一步实现对细分的各个业务子类进行限流。
在一些实施例中,接口接收的调用请求中携带有值集和/或参数集,可以基于所述调用请求中携带的所述值集和/或参数集,确定与所述调用请求的请求方对应的预设限制流量,并在允许向所述请求方反馈所述调用请求所请求的数据时,基于所述值集和/或参数集向所述请求方反馈对应的数据。换言之,调用请求中所携带的值集和/或参数集可以起到上述双重作用。
在一些实施例中,可以按照最长参数匹配策略,选择所有值集中包含预定参数的数量最多的第一值集对应的第一流量限制条件作为当前所使用的流量限制条件,在预定接口接收到调用请求时,基于调用请求中确定的预定参数的值,按照第一流量限制条件中对该预定参数的请求方对应的预设限制流量进行数据传输。在这种情况下,通过最长参数匹配策略匹配到的值集,可以实现对更多请求方的流量限制,最大程度保证流量限制效果。在实际使用时,若经过最长参数匹配策略,存在两个或两个以上的值集,其对应限制的预定参数的数量相同,可以根据预先设定的策略从上述两个或多个值集中选取一个值集对应的流量限制条件作为当前使用的流量限制条件,例如将配置时间最晚的值集和/或参数集确定有当前采用的值集和/或参数集,进而确定流量限制条件。当然也可使用其他筛选条件确定当前使用的流量限制条件,本实施例在此不进行限制。
在上述基于值集进行流量限制的实施方式中,预定参数是预定接口规定的,所有请求方在进行调用请求发送时,会按照预先要求的格式在调用请求的预定位置发送自身对应的预定参数的参数值,以供预定接口识别并进行流量限制。而在实际实现时,预定接口同时定义了扩展字段供请求方进行参数的自主定义,并将自定义参数作为自身的标识,供预定接口接收识别;此时,预定接口可以基于不同请求方的不同的自定义参数,创建基于参数集的流量限制条件,主要通过获取调用请求中的不同的自定义参数来识别不同的请求方身份,并基于自定义参数来实现基于不同请求方的流量限制。
具体地,参数集为至少一个自定义参数的集合,自定义参数的具体形式或具体值由请求方自行设定,设定时不超过原有扩展字段定义的字符类型或长度范围即可,并在设定后告知预定接口。在配置基于参数集的流量限制条件时,可将当前已知的所有自定义参数中的任意一种或几种自定义参数作为一个参数集进行流量限制,并且可以同时设置多种自定义参数的组合方式以形成多个参数集,并针对每个参数集进行不同的限制条件配置。若同时存在多个参数集,则在实际使用参数集进行流量限制时,从所有参数集中选择其中的一个参数集所对应的流量限制条件进行流量限制,防止多个参数集的流量限制条件之间出现互斥,导致实际进行限制时对于同一个请求方出现多种限制条件。
例如,应用程序A自定义了参数param1来标识自身身份、应用程序B自定义了参数param2来标识自身身份、应用程序C自定义了参数param3来标识自身身份;在进行基于参数集的流量限制时,可限定param1和param2作为参数集1、param1和param3作为参数集2,param1、param2以及param3作为参数集3,并为每个参数集中的不同请求方分别进行流量限制,形成组合限流模式。在预定接口接收到来自不同请求方的调用请求时,从所有参数集中选择一个参数集,并使用该参数集中限定的流量情况进行数据传输。
在一些实施例中,可以按照最长参数匹配策略,选择所有参数集中具有自定义参数的数量最多的第二参数集对应的第二流量限制条件作为当前所使用的流量限制条件,在预定接口接收到调用请求时,基于调用请求中确定的自定义参数,按照第二流量限制条件中对该自定义参数的请求方对应的预设限制流量进行数据传输。在这种情况下,通过最长参数匹配策略匹配到的参数集,可以实现对更多请求方的流量限制,最大程度保证流量限制效果,而且,通过最长参数匹配策略,还能适应业务实际场景中不断细化限流需求、或细化数据查询需求的情况,从而使得默认选中的含有最长参数的值集或参数集恰好是最新配置的值集或参数集,适应业务的实际需要。在实际使用时,若经过最长参数匹配策略,存在两个或两个以上的参数集,其对应限制的自定义参数的数量相同,则可按照预定策略从上述两个或多个参数集中选取一个参数集对应的流量限制条件作为当前使用的流量限制条件,或者按照权重占比从上述两个或多个参数集中选择权重占比最高的参数集对应的流量限制条件作为当前使用的流量限制条件。当然也可使用其他筛选条件确定当前使用的流量限制条件,本实施例在此不进行限制。
在一些实施例中,为预定接口配置基于参数集的流量限制条件时,可以根据实际可能出现的调用情况为当前所有限制条件中的每个参数集分配权重占比,权重配比越高,则证明该参数集对应的限制条件使用情况越广,或者表明该参数集对应的限制条件能达到更好的流量限制效果;在预定接口接收到调用请求时,选择当前所有参数集中权重占比最高的第三参数集对应的第三流量限制条件作为当前所使用的流量限制条件,然后基于预定接口在调用请求中确定的自定义参数,按照第三流量限制条件中对该自定义参数的请求方对应的预设限制流量进行数据传输。
另外,还可以根据时间段进行不同参数集的配置,例如,每天0点至8点,配置预定接口使用参数集1的流量限制条件;8点至19点,配置预定接口使用参数集2的流量限制条件;19点至24点,配置预定接口使用参数集3的流量限制条件;预定接口根据接收到调用请求时间的不同选用不同参数集对应的流量限制条件进行流量限制,保证流量限制条件设定的灵活性,同时满足各请求方的实际请求情况,达到更好的流量限制效果。
在实际进行基于数据集的流量限制条件的配置时,需要结合该预定接口的总限制流量,对数据集中各个请求方对应的限制流量进行配置,保证任意一个的流量限制条件所对应的所有请求方的预设限制流量之和小于或等于预定接口的总限制流量,即实现在常规接口流量限制的前提下,通过数据集的流量限制,实现更精细化的流量限制效果,满足更多业务场景的流量限制需求。
应当了解的是,本实施例中所提供的基于值集的限流模式、基于参数集的限流模式均可以作为唯一的限定条件进行流量限制;另外,也可以将上述两种限流模式与常规基于接口的限流模式进行结合,实现预定接口支持单一值集限流模式、单一参数集限流模式、值集结合参数集限流模式、值集结合接口限流模式、参数集结合接口限流模式以及值集结合参数集以及接口限流模式,具体使用哪种限流模式可以根据需求进行设定,本实施例不进行限制。例如,可以同时使用值集和参数集的限定,基于最长匹配策略确定第一值集和第二参数集分别对应的第一流量限制条件和第二流量限制条件,并同时使用上述两个流量限制条件中所设定的流量限制进行数据传输,以达到更精细化的流量限制;当然也可以任选其中一个流量限制条件进行限定,本实施例不进行限制。
本实施例通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
本公开的第二实施例提供了一种限流装置,该装置可以设置在预定接口中,用于实现接口的限流以及限流条件的配置。图2示出了限流装置的结构示意图,其主要包括配置模块10以及限流模块20,其中,配置模块10用于为预定接口配置基于数据集的流量限制条件,数据集被配置为表征调用预定接口的至少一个请求方的集合;限流模块20用于在预定接口接收到调用请求时,获取流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
具体地,数据集至少包括:至少一个值集和/或至少一个参数集;其中,值集为至少一个预定参数中的至少一个参数值的集合,预设参数由预定接口定义,不同的预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;参数集为至少一个自定义参数的集合,自定义参数由请求方基于预定接口定义的扩展字段进行定义,不同的自定义参数用于表征不同的请求方。
在一些实施例中,限流模块20具体用于:在所有值集中确定第一值集所对应的第一流量限制条件,其中,第一值集为所有值集中包含预定参数最多的值集;和/或,在所有参数集中确定第二参数集所对应的第二流量限制条件,其中,第二参数集为所有参数集中具有自定义参数的数量最多的参数集;获取第一流量限制条件和/或第二流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
在一些实施例中,在数据集包括至少一个参数集的情况下,配置模块10具体用于:为至少一个参数集中的每个参数集分配权重占比。进一步地,限流模块20具体用于:在所有参数集中确定权重占比最高的第三参数集所对应的第三流量限制条件;获取第三流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
在一些实施例中,为预定接口配置基于数据集的流量限制条件,包括:基于预定接口的总限制流量配置数据集中各请求方对应的限制流量,其中,对于任意一个流量限制条件中的所有请求方,所有请求方对应的预设限制流量的和值小于或等于总限制流量。
在一些实施例中,调用请求中携带有值集和/或参数集,限流模块20具体用于:基于调用请求中携带的值集和/或参数集,确定与调用请求的请求方对应的预设限制流量,在允许向请求方反馈调用请求所请求的数据时,基于值集和/或参数集向请求方反馈对应的数据。
本实施例通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
本公开第三实施例提供了一种存储介质,该存储介质可安装于分布式通信场景中的任意一个接口中,其具体为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S31和S32:
S31,为预定接口配置基于数据集的流量限制条件;
S32,在预定接口接收到调用请求时,按照流量限制条件中请求方对应的限制流量进行数据传输。
具体地,数据集至少包括:至少一个值集和/或至少一个参数集;其中,值集为至少一个预定参数中的至少一个参数值的集合,预定参数由预定接口定义,不同的预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;参数集为至少一个自定义参数的集合,自定义参数由请求方基于预定接口定义的扩展字段进行定义,不同的自定义参数用于表征不同的请求方。
计算机程序被处理器执行按照流量限制条件中请求方对应的限制流量进行数据传输时,具体被处理器执行如下步骤:在所有值集中确定第一值集所对应的第一流量限制条件,其中,第一值集为所有值集中包含预定参数最多的值集;和/或,在所有参数集中确定第二参数集所对应的第二流量限制条件,其中,第二参数集为所有参数集中具有自定义参数的数量最多的参数集;获取第一流量限制条件和/或第二流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
在数据集包括至少一个参数集的情况下,计算机程序被处理器执行为预定接口配置基于数据集的流量限制条件时,具体被处理器执行如下步骤:为至少一个参数集中的每个参数集分配权重占比;计算机程序被处理器执行照流量限制条件中请求方对应的限制流量进行数据传输时,具体被处理器执行如下步骤:在所有参数集中确定权重占比最高的第三参数集所对应的第三流量限制条件;按照第三流量限制条件中请求方对应的限制流量进行数据传输。
计算机程序被处理器执行为预定接口配置基于数据集的流量限制条件时,具体被处理器执行如下步骤:基于预定接口的总限制流量配置数据集中各请求方对应的限制流量,其中,当前所使用的流量限制条件所对应的各个请求方对应的限制流量之和小于或等于总限制流量。
在调用请求中携带有值集和/或参数集的情况下,计算机程序被处理器执行获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输时,具体被处理器执行如下步骤:基于调用请求中携带的值集和/或参数集,确定与调用请求的请求方对应的预设限制流量,在允许向请求方反馈调用请求所请求的数据时,基于值集和/或参数集向请求方反馈对应的数据。
本实施例通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
本公开的第四实施例提供了一种电子设备,该电子设备可以作为分布式通信场景中的接口使用,其结构示意图如图3所示,至少包括存储器100和处理器200,存储器100上存储有计算机程序,处理器200在执行存储器100上的计算机程序时实现本公开任意实施例提供的方法。示例性的,电子设备计算机程序步骤如下S41和S42:
S41,为预定接口配置基于数据集的流量限制条件;
S42,在预定接口接收到调用请求时,按照流量限制条件中请求方对应的限制流量进行数据传输。
具体地,数据集至少包括:至少一个值集和/或至少一个参数集;其中,值集为至少一个预定参数中的至少一个参数值的集合,预定参数由预定接口定义,不同的预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;参数集为至少一个自定义参数的集合,自定义参数由请求方基于预定接口定义的扩展字段进行定义,不同的自定义参数用于表征不同的请求方。
处理器在执行存储器上存储的按照流量限制条件中请求方对应的限制流量进行数据传输时,具体执行如下计算机程序:在所有值集中确定第一值集所对应的第一流量限制条件,其中,第一值集为所有值集中包含预定参数最多的值集;和/或,在所有参数集中确定第二参数集所对应的第二流量限制条件,其中,第二参数集为所有参数集中具有自定义参数的数量最多的参数集;获取第一流量限制条件和/或第二流量限制条件中调用请求的请求方对应的预设限制流量,并根据预设限制流量与请求方进行数据传输。
在所述数据集包括至少一个参数集的情况下,处理器在执行存储器上存储的为预定接口配置基于数据集的流量限制条件时,具体执行如下计算机程序:为至少一个所述参数集中的每个所述参数集分配权重占比;处理器在执行存储器上存储的按照所述流量限制条件中所述请求方对应的限制流量进行数据传输时,具体执行如下计算机程序:在所有所述参数集中确定所述权重占比最高的第三参数集所对应的第三流量限制条件;按照所述第三流量限制条件中所述请求方对应的限制流量进行数据传输。
处理器在执行存储器上存储的为预定接口配置基于数据集的流量限制条件时,具体执行如下计算机程序:基于所述预定接口的总限制流量配置所述数据集中各请求方对应的限制流量,其中,当前所使用的所述流量限制条件所对应的各个请求方对应的限制流量之和小于或等于所述总限制流量。
在调用请求中携带有值集和/或参数集的情况下,处理器在执行存储器上存储的获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输时,具体执行如下计算机程序:基于调用请求中携带的值集和/或参数集,确定与调用请求的请求方对应的预设限制流量,在允许向请求方反馈调用请求所请求的数据时,基于值集和/或参数集向请求方反馈对应的数据。
本实施例通过对接口进行基于数据集的流量限制条件的设置,实现接口调用时针对请求方的限流模式,细化了接口的限流条件,使其可以针对不同请求方实现不同查询流量的限制,达到精细化限流的目的,满足更多样的业务场景需求。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。
Claims (7)
1.一种限流方法,其特征在于,包括:
为预定接口配置基于数据集的流量限制条件,其中,所述数据集被配置为表征调用所述预定接口的至少一个请求方的集合;
在所述预定接口接收到调用请求时,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输;
其中,所述数据集至少包括:
至少一个值集和/或至少一个参数集;其中,
所述值集为至少一个预定参数中的至少一个参数值的集合,所述预定参数由预定接口定义,不同的所述预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;
所述参数集为至少一个自定义参数的集合,所述自定义参数由所述请求方基于所述预定接口定义的扩展字段进行定义,不同的所述自定义参数用于表征不同的所述请求方;
其中,所述获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输,包括:
在所有所述值集中确定第一值集所对应的第一流量限制条件,其中,所述第一值集为所有值集中包含所述预定参数最多的值集;和/或,在所有所述参数集中确定第二参数集所对应的第二流量限制条件,其中,所述第二参数集为所有参数集中具有自定义参数的数量最多的参数集;
获取所述第一流量限制条件和/或第二流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
2.根据权利要求1所述的限流方法,其特征在于,在所述数据集包括至少一个参数集的情况下,为预定接口配置基于数据集的流量限制条件,包括:
为至少一个所述参数集中的每个所述参数集分配权重占比;
所述获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输,包括:
在所有所述参数集中确定所述权重占比最高的第三参数集所对应的第三流量限制条件;获取所述第三流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
3.根据权利要求1至2中任一项所述的限流方法,其特征在于,为预定接口配置基于数据集的流量限制条件,包括:
基于所述预定接口的总限制流量配置所述数据集中各请求方对应的预设限制流量,其中,对于一个流量限制条件中的所有请求方,所述所有请求方对应的预设限制流量的和值小于或等于所述总限制流量。
4.根据权利要求1所述的方法,所述调用请求中携带有值集和/或参数集,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输,包括:
基于所述调用请求中携带的所述值集和/或参数集,确定与所述调用请求的请求方对应的预设限制流量,
在允许向所述请求方反馈所述调用请求所请求的数据时,基于所述值集和/或参数集向所述请求方反馈对应的数据。
5.一种限流装置,其特征在于,设置在预定接口中,所述限流装置至少包括:
配置模块,用于为预定接口配置基于数据集的流量限制条件,其中,所述数据集被配置为表征调用所述预定接口的至少一个请求方的集合;
限流模块,用于在所述预定接口接收到调用请求时,获取所述流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输;
其中,所述数据集至少包括:
至少一个值集和/或至少一个参数集;其中,
所述值集为至少一个预定参数中的至少一个参数值的集合,所述预定参数由预定接口定义,不同的所述预定参数用于表征请求方的不同维度,同一个预定参数的不同参数值用于表征同一维度下的不同请求方;
所述参数集为至少一个自定义参数的集合,所述自定义参数由所述请求方基于所述预定接口定义的扩展字段进行定义,不同的所述自定义参数用于表征不同的所述请求方;
其中,所述限流模块具体用于:
在所有所述值集中确定第一值集所对应的第一流量限制条件,其中,所述第一值集为所有值集中包含所述预定参数最多的值集;和/或,在所有所述参数集中确定第二参数集所对应的第二流量限制条件,其中,所述第二参数集为所有参数集中具有自定义参数的数量最多的参数集;
获取所述第一流量限制条件和/或第二流量限制条件中所述调用请求的请求方对应的预设限制流量,并根据所述预设限制流量与所述请求方进行数据传输。
6.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的限流方法的步骤。
7.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至4中任一项所述的限流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111135790.0A CN113890853B (zh) | 2021-09-27 | 2021-09-27 | 一种限流方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111135790.0A CN113890853B (zh) | 2021-09-27 | 2021-09-27 | 一种限流方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113890853A CN113890853A (zh) | 2022-01-04 |
CN113890853B true CN113890853B (zh) | 2024-04-19 |
Family
ID=79006999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111135790.0A Active CN113890853B (zh) | 2021-09-27 | 2021-09-27 | 一种限流方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113890853B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及系统 |
CN109039937A (zh) * | 2018-09-26 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 动态限流方法、装置、计算机设备和存储介质 |
CN110113269A (zh) * | 2019-04-28 | 2019-08-09 | 平安科技(深圳)有限公司 | 一种基于中间件的流量控制的方法及相关装置 |
WO2020024721A1 (zh) * | 2018-08-03 | 2020-02-06 | 中兴通讯股份有限公司 | 一种业务传输的方法、设备及计算机存储介质 |
CN110808914A (zh) * | 2019-09-29 | 2020-02-18 | 北京淇瑀信息科技有限公司 | 一种访问请求处理方法、装置及电子设备 |
CN111953635A (zh) * | 2019-05-15 | 2020-11-17 | 福建天晴数码有限公司 | 接口请求处理方法及计算机可读存储介质 |
CN112073329A (zh) * | 2020-08-25 | 2020-12-11 | 北京五八信息技术有限公司 | 分布式限流方法、装置、电子设备和存储介质 |
CN112202682A (zh) * | 2020-09-27 | 2021-01-08 | 平安国际智慧城市科技股份有限公司 | 接口流量控制方法、装置、计算机设备及存储介质 |
CN112825045A (zh) * | 2019-11-20 | 2021-05-21 | 上海哔哩哔哩科技有限公司 | 支付请求处理方法、系统和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8885476B2 (en) * | 2012-10-04 | 2014-11-11 | Verizon Patent And Licensing Inc. | TCP flow control optimized for networks having radio segments |
US9882877B2 (en) * | 2014-05-12 | 2018-01-30 | Michael C. Wood | Transparent traffic control device and method for securing internet-connected devices |
CN107222426B (zh) * | 2016-03-21 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 控流的方法、装置及系统 |
-
2021
- 2021-09-27 CN CN202111135790.0A patent/CN113890853B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及系统 |
WO2020024721A1 (zh) * | 2018-08-03 | 2020-02-06 | 中兴通讯股份有限公司 | 一种业务传输的方法、设备及计算机存储介质 |
CN109039937A (zh) * | 2018-09-26 | 2018-12-18 | 深圳壹账通智能科技有限公司 | 动态限流方法、装置、计算机设备和存储介质 |
CN110113269A (zh) * | 2019-04-28 | 2019-08-09 | 平安科技(深圳)有限公司 | 一种基于中间件的流量控制的方法及相关装置 |
CN111953635A (zh) * | 2019-05-15 | 2020-11-17 | 福建天晴数码有限公司 | 接口请求处理方法及计算机可读存储介质 |
CN110808914A (zh) * | 2019-09-29 | 2020-02-18 | 北京淇瑀信息科技有限公司 | 一种访问请求处理方法、装置及电子设备 |
CN112825045A (zh) * | 2019-11-20 | 2021-05-21 | 上海哔哩哔哩科技有限公司 | 支付请求处理方法、系统和存储介质 |
CN112073329A (zh) * | 2020-08-25 | 2020-12-11 | 北京五八信息技术有限公司 | 分布式限流方法、装置、电子设备和存储介质 |
CN112202682A (zh) * | 2020-09-27 | 2021-01-08 | 平安国际智慧城市科技股份有限公司 | 接口流量控制方法、装置、计算机设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
EOS技术的流量控制方法;周芳, 陶智勇;《中国有线电视》(17);全文 * |
HSUPA中Iub接口流控算法研究;王晨喆;《万方数据库》;全文 * |
Li Yudong ; Zhang Yuqing.Service Availability Guarantee with Adaptive Automatic Flow Control.《2020 IEEE World Congress on Services (SERVICES)》.2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113890853A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795244B (zh) | 一种任务分配方法、装置、设备及介质 | |
US8429666B2 (en) | Computing platform with resource constraint negotiation | |
WO2021098407A1 (zh) | 基于mec的服务节点分配方法、装置及相关服务器 | |
US10057208B2 (en) | Visibility control for domain name system service discovery | |
CN111245901B (zh) | 一种支持服务参数下发的分布式服务注册发现方法及系统 | |
US20210359953A1 (en) | Method for Managing Hardward Resource, Method for Querying Location of Hardware Resource, and Related Apparatus | |
TW201709697A (zh) | 網路接取請求控制方法和裝置 | |
US11218385B2 (en) | Network entity and method for identifier allocating and/or mapping of network services | |
US20160070475A1 (en) | Memory Management Method, Apparatus, and System | |
DE112008004056T5 (de) | Dateitypzuordnung bei einer Fernrechensitzung | |
CN110545450B (zh) | 一种节点分配方法、系统及电子设备和存储介质 | |
US20220345925A1 (en) | Distribution of Consolidated Analytics Reports in a Wireless Core Network | |
CN105791254A (zh) | 网络请求处理方法、装置及终端 | |
US20210243593A1 (en) | Call method, device, and system | |
US12041688B2 (en) | Screen projection method and system | |
CN105468619A (zh) | 用于数据库连接池的资源分配方法和装置 | |
CN114157710A (zh) | 通信策略配置方法、装置、存储介质及设备 | |
CN112087401A (zh) | 分布式存储中实现服务质量的方法和装置 | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN113890853B (zh) | 一种限流方法、装置、存储介质及电子设备 | |
WO2019034091A1 (zh) | 分布式数据计算的分配方法、装置、服务器及存储介质 | |
CN112073214A (zh) | 一种实现应用的方法及业务控制器 | |
WO2023016460A1 (zh) | 计算任务的策略确定或资源分配方法、装置、网元及介质 | |
CN115794396A (zh) | 资源分配的方法、系统和电子设备 | |
CN106326296A (zh) | 数据查询方法及装置 |
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 |