CN110417678A - 一种应用程序接口限流的方法及装置 - Google Patents

一种应用程序接口限流的方法及装置 Download PDF

Info

Publication number
CN110417678A
CN110417678A CN201910728399.8A CN201910728399A CN110417678A CN 110417678 A CN110417678 A CN 110417678A CN 201910728399 A CN201910728399 A CN 201910728399A CN 110417678 A CN110417678 A CN 110417678A
Authority
CN
China
Prior art keywords
token
application programming
programming interfaces
bucket
request
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.)
Pending
Application number
CN201910728399.8A
Other languages
English (en)
Inventor
宋喆
魏金雷
杨继伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201910728399.8A priority Critical patent/CN110417678A/zh
Publication of CN110417678A publication Critical patent/CN110417678A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种应用程序接口限流的方法及装置,该方法,包括:预先为应用程序接口设置令牌桶;在所述令牌桶中设置至少一个令牌;拦截外部发来的调用所述应用程序接口的请求;判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。本发明提供了一种应用程序接口限流的方法及装置,能够更加方便地避免崩溃的发生。

Description

一种应用程序接口限流的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种应用程序接口限流的方法及装置。
背景技术
云计算作为一种创新型的计算模式,云服务平台为用户提供便捷的服务的同时,面临着复杂的网络环境。由于云服务平台的业务应用系统的负载能力有限,当存在大量的非预期的请求时,业务应用系统可能因为压力过大而崩溃。
在现有技术中,一般通过提升业务应用系统负载能力的方式来避免崩溃的情况。这需要从软件、硬件等各个方面对之前的业务应用系统进行修改,工作量较大,比较复杂。
发明内容
本发明实施例提供了一种应用程序接口限流的方法及装置,能够更加方便地避免崩溃的发生。
一方面,本发明实施例提供了一种应用程序接口限流的方法,包括:
预先为应用程序接口设置令牌桶;
在所述令牌桶中设置至少一个令牌;
拦截外部发来的调用所述应用程序接口的请求;
判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
可选地,
该方法进一步包括:
预先设置所述令牌桶的最大容量;
所述在所述令牌桶中设置至少一个令牌,包括:
周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
可选地,
该方法进一步包括:
确定所述应用程序接口对应的每秒查询率;
所述周期性地生成新的令牌,包括:
以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
可选地,
在所述判断所述令牌桶中是否存在令牌之前,进一步包括:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
在所述从所述令牌桶中取出任一令牌之后,进一步包括:
将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
可选地,
所述在所述令牌桶中设置至少一个令牌之后,进一步包括:
为每个所述令牌设置有效期;
当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
另一方面,本发明实施例提供了一种应用程序接口限流的装置,包括:
针对应用程序接口的令牌桶、服务限流控制器和拦截器;
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌;
所述拦截器,用于拦截外部发来的调用所述应用程序接口的请求,判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
可选地,
所述服务限流控制器,用于周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
可选地,
该装置进一步包括:
确定单元,用于确定所述应用程序接口对应的每秒查询率;
所述服务限流控制器,在执行所述周期性地生成新的令牌时,用于以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
可选地,
所述拦截器,进一步用于在所述判断所述令牌桶中是否存在令牌之前,执行:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
所述拦截器,进一步用于在所述从所述令牌桶中取出任一令牌之后,执行:将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
可选地,
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌之后,为每个所述令牌设置有效期;
所述拦截器,进一步用于当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
在本发明实施例中,预先为应用程序接口设置令牌桶,在令牌桶中设置令牌,当拦截到外部发来的调用应用程序接口的请求时,查看令牌桶中是否存在令牌,存在令牌则允许调用,不存在则不允许调用,通过令牌桶中令牌的数量来限制使用该应用程序接口的用户的数量,实现了对应用程序接口的限流,这样,对应用程序接口进行限流后,该应用程序接口对应的业务应用系统无需同时处理大量的请求,进而避免了崩溃的发生,而且在本发明实施例中,从软件、硬件等方面均无需对业务应用系统进行修改,工作量较小,能够更加方便地避免崩溃的发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种应用程序接口限流的方法的流程图;
图2是本发明一实施例提供的另一种应用程序接口限流的方法的流程图;
图3是本发明一实施例提供的一种应用程序接口限流的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种应用程序接口限流的方法,该方法可以包括以下步骤:
步骤101:预先为应用程序接口设置令牌桶;
步骤102:在所述令牌桶中设置至少一个令牌;
步骤103:拦截外部发来的调用所述应用程序接口的请求;
步骤104:判断所述令牌桶中是否存在令牌,如果是,则执行步骤105,否则,执行步骤106;
步骤105:从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口;
步骤106:不允许所述请求调用所述应用程序接口。
在本发明实施例中,预先为应用程序接口设置令牌桶,在令牌桶中设置令牌,当拦截到外部发来的调用应用程序接口的请求时,查看令牌桶中是否存在令牌,存在令牌则允许调用,不存在则不允许调用,通过令牌桶中令牌的数量来限制使用该应用程序接口的用户的数量,实现了对应用程序接口的限流,这样,对应用程序接口进行限流后,该应用程序接口对应的业务应用系统无需同时处理大量的请求,进而避免了崩溃的发生,而且在本发明实施例中,从软件、硬件等方面均无需对业务应用系统进行修改,工作量较小,能够更加方便地避免崩溃的发生。
在本发明一实施例中,该方法进一步包括:
预先设置所述令牌桶的最大容量;
所述在所述令牌桶中设置至少一个令牌,包括:
周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
在本发明实施例中,为令牌桶设置了最大容量,最大容量是指令牌桶中最多能够存放的令牌的数量。该最大容量可以根据应用程序接口对应的业务应用系统的负载能力来设置。如果业务应用系统的负载能力较大,则可以将最大容量设置的较大,如果业务应用系统的负载能力较小,则可以将最大容量设置的较小。例如:业务应用系统能够同时处理10个请求,那么,可以将最大容量设置为10,也就是说,令牌桶中最多能够容纳10个令牌。
当令牌桶中的令牌已经到了最大容量时,则不会再放入令牌,这样,而只有获取到令牌的请求才能调用应用程序接口,通过最大容量能够限制获取到令牌的请求的数量,进而起到的限流的效果。
在本发明实施例中,当从令牌桶中取出任一令牌后,该被取出的令牌从令牌桶中删除,令牌桶中的令牌数量减少一个,也就是说,令牌桶中的令牌的数量会随着请求的增多而减少,同时,新的令牌会周期性地补充进来,令牌桶中的令牌的数量是动态变化的。如果请求增加的速度大于新的令牌的生成的速度,则令牌桶中就会不够用,进而起到了限制了同时需要处理的请求的数量的作用。
在本发明一实施例中,该方法进一步包括:
确定所述应用程序接口对应的每秒查询率;
所述周期性地生成新的令牌,包括:
以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
每秒查询率是在规定时间内所处理流量多少的衡量标准,每秒查询率越高,说明能够处理的流量越多,处理能力越强,负载能力越强。
在本发明实施例中,以1/r为周期,当每秒查询率较高时,该周期较短,生成新的令牌的速度较快,这样,向令牌桶中放入令牌的速度也较快,这样,如果应用程序接口的请求较多,能够及时向令牌桶中补充新的令牌,进而能够使得更多的用户同时调用该应用程序接口,而由于该应用程序接口对应的每秒查询率较高,在最大容量的限制下,更多的用户同时调用该应用程序接口也不会超出该应用程序接口对应的业务应用系统的负载能力,反而能够提高业务应用系统的处理效率。
另外,当每秒查询率较低时,该周期较长,生成新的令牌的速度较慢,这样,向令牌桶中放入令牌的速度也较慢,这样,如果应用程序接口的请求较多,令牌桶中的令牌就会不够用,进而能够降低了同时调用该应用程序接口的用户的数量,由于该应用程序接口对应的每秒查询率较低,通过降低同时调用该应用程序接口的用户的数量,能够起到限流效果,避免该应用程序接口对应的业务应用系统出现负载过重的情况,避免了该业务应用系统的崩溃。
在本发明一实施例中,在所述判断所述令牌桶中是否存在令牌之前,进一步包括:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
在所述从所述令牌桶中取出任一令牌之后,进一步包括:
将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
在本发明实施例中,将从令牌桶中取出的令牌发送给发出该请求的调用方,该调用方可以凭借该令牌多次调用该应用程序接口,避免了每次都重新获取令牌。
在本发明一实施例中,所述在所述令牌桶中设置至少一个令牌之后,进一步包括:
为每个所述令牌设置有效期;
当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
在本发明实施例中,为每个令牌设置有效期,例如有效期是5秒等。调用方只能在有效期内使用获取的令牌,令牌过期后,不能再凭该令牌调用应用程序接口,需要从令牌桶中重新获取新的令牌。令牌的期限可以从由令牌桶中取出时开始计算,例如:有效期为5秒,从令牌桶中取出5秒后,该令牌过期。
通过本发明实施例,既能够方便调用方短期内多次调用应用程序接口,也能够避免较多的调用方长期持有令牌,发放的令牌较多后,对应用程序接口对应的业务系统造成太大的压力。
如图2所示,本发明实施例提供了一种应用程序接口限流的方法,包括:
步骤201:预先为应用程序接口设置令牌桶,预先设置令牌桶的最大容量。
步骤202:确定应用程序接口对应的每秒查询率。
步骤203:以1/r为周期,周期性地生成新的令牌,其中,r为应用程序接口对应的每秒查询率。
其中,当应用程序接口对应的每秒查询率提升时,使得生成新的令牌的周期变短,进而能够提高向令牌桶中添加新的令牌速度,该应用程序接口单位时间允许通过的最大流量将会提高。
步骤204:判断令牌桶中令牌的数量是否小于令牌桶的最大容量,如果是,则执行步骤205,否则,执行步骤206。
步骤205:将新生成的令牌放入令牌桶中。
步骤206:将新生成的令牌丢弃。
步骤207:拦截外部发来的调用所述应用程序接口的请求。
步骤208:判断令牌桶中是否存在令牌,如果则,执行步骤209,否则,执行步骤210。
步骤209:从令牌桶中取出任一令牌,允许该请求调用应用程序接口。
步骤210:不允许该请求调用应用程序接口。
在本发明实施例中,应用程序接口对应的业务应用系统可以是部署在云服务平台上的业务应用系统。用户可以通过调用应用程序接口来使用云服务平台。
在本发明实施例中,通过限流的方式来降低应用程序接口的流量,这样虽然降低了应用程序接口的访问频率和并发量,却能够使得应用程序接口和业务应用系统高可用,通过控制单位时间应用程序接口被请求的次数,从而来保证云服务平台的稳定性,以保证对外提供的服务不会因为非预期的流量造成系统的崩溃。
在本发明实施例中,应用程序接口调用的流量得到了有效控制,避免了非预期的网络流量造成系统的崩溃或网络堵塞,同时,若需要提高应用程序接口的被请求流量,则可以加快向令牌桶中的添加新的令牌的速率,实现灵活配置。
如图3所示,本发明实施例提供了一种应用程序接口限流的装置,包括:
针对应用程序接口的令牌桶301、服务限流控制器302和拦截器303;
所述服务限流控制器302,用于在所述令牌桶301中设置至少一个令牌;
所述拦截器303,用于拦截外部发来的调用所述应用程序接口的请求,判断所述令牌桶301中是否存在令牌,如果是,则从所述令牌桶301中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
在本发明一实施例中,所述服务限流控制器,用于周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
在本发明一实施例中,该装置进一步包括:
确定单元,用于确定所述应用程序接口对应的每秒查询率;
所述服务限流控制器,在执行所述周期性地生成新的令牌时,用于以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
在本发明一实施例中,所述拦截器,进一步用于在所述判断所述令牌桶中是否存在令牌之前,执行:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
所述拦截器,进一步用于在所述从所述令牌桶中取出任一令牌之后,执行:将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
在本发明一实施例中,所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌之后,为每个所述令牌设置有效期;
所述拦截器,进一步用于当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明实施例提供的任意一种应用程序接口限流的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的执行指令,以使所述存储控制器执行本发明实施例提供的任意一种应用程序接口限流的方法。
本发明各个实施例至少具有如下有益效果:
在本发明实施例中,预先为应用程序接口设置令牌桶,在令牌桶中设置令牌,当拦截到外部发来的调用应用程序接口的请求时,查看令牌桶中是否存在令牌,存在令牌则允许调用,不存在则不允许调用,通过令牌桶中令牌的数量来限制使用该应用程序接口的用户的数量,实现了对应用程序接口的限流,这样,对应用程序接口进行限流后,该应用程序接口对应的业务应用系统无需同时处理大量的请求,进而避免了崩溃的发生,而且在本发明实施例中,从软件、硬件等方面均无需对业务应用系统进行修改,工作量较小,能够更加方便地避免崩溃的发生。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种应用程序接口限流的方法,其特征在于,
预先为应用程序接口设置令牌桶;
包括:
在所述令牌桶中设置至少一个令牌;
拦截外部发来的调用所述应用程序接口的请求;
判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:
预先设置所述令牌桶的最大容量;
所述在所述令牌桶中设置至少一个令牌,包括:
周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
3.根据权利要求2所述的方法,其特征在于,
进一步包括:
确定所述应用程序接口对应的每秒查询率;
所述周期性地生成新的令牌,包括:
以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
4.根据权利要求1所述的方法,其特征在于,
在所述判断所述令牌桶中是否存在令牌之前,进一步包括:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
在所述从所述令牌桶中取出任一令牌之后,进一步包括:
将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
5.根据权利要求4中所述的方法,其特征在于,
所述在所述令牌桶中设置至少一个令牌之后,进一步包括:
为每个所述令牌设置有效期;
当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
6.一种应用程序接口限流的装置,其特征在于,包括:
针对应用程序接口的令牌桶、服务限流控制器和拦截器;
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌;
所述拦截器,用于拦截外部发来的调用所述应用程序接口的请求,判断所述令牌桶中是否存在令牌,如果是,则从所述令牌桶中取出任一令牌,允许所述请求调用所述应用程序接口,否则,不允许所述请求调用所述应用程序接口。
7.根据权利要求6所述的装置,其特征在于,
所述服务限流控制器,用于周期性地生成新的令牌,判断所述令牌桶中令牌的数量是否小于所述令牌桶的最大容量,如果是,则将新生成的令牌放入所述令牌桶中,否则,将新生成的令牌丢弃。
8.根据权利要求7所述的装置,其特征在于,
进一步包括:
确定单元,用于确定所述应用程序接口对应的每秒查询率;
所述服务限流控制器,在执行所述周期性地生成新的令牌时,用于以1/r为周期,周期性地生成新的令牌,其中,r为所述应用程序接口对应的每秒查询率。
9.根据权利要求6所述的装置,其特征在于,
所述拦截器,进一步用于在所述判断所述令牌桶中是否存在令牌之前,执行:
判断所述请求中是否携带有所述应用程序接口对应的所述令牌桶中的令牌,如果是,则允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌;
所述拦截器,进一步用于在所述从所述令牌桶中取出任一令牌之后,执行:将被提取出的令牌发送给发出所述请求的调用方,使得所述调用方每次调用所述应用程序接口时均在请求中携带所述令牌。
10.根据权利要求9中所述的装置,其特征在于,
所述服务限流控制器,用于在所述令牌桶中设置至少一个令牌之后,为每个所述令牌设置有效期;
所述拦截器,进一步用于当判断出所述请求中携带有所述应用程序接口对应的所述令牌桶中的令牌时,执行:
判断所述请求中携带的所述令牌是否在所述令牌的有效期内,如果是,则执行所述允许所述请求调用所述应用程序接口,否则,执行所述判断所述令牌桶中是否存在令牌。
CN201910728399.8A 2019-08-08 2019-08-08 一种应用程序接口限流的方法及装置 Pending CN110417678A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910728399.8A CN110417678A (zh) 2019-08-08 2019-08-08 一种应用程序接口限流的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910728399.8A CN110417678A (zh) 2019-08-08 2019-08-08 一种应用程序接口限流的方法及装置

Publications (1)

Publication Number Publication Date
CN110417678A true CN110417678A (zh) 2019-11-05

Family

ID=68366504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910728399.8A Pending CN110417678A (zh) 2019-08-08 2019-08-08 一种应用程序接口限流的方法及装置

Country Status (1)

Country Link
CN (1) CN110417678A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314238A (zh) * 2020-02-03 2020-06-19 网银在线(北京)科技有限公司 令牌的管理方法和装置、存储介质、电子装置
CN112631928A (zh) * 2020-12-30 2021-04-09 上海中通吉网络技术有限公司 基于令牌桶的性能测试方法、装置及设备
CN114024908A (zh) * 2021-11-03 2022-02-08 蚂蚁胜信(上海)信息技术有限公司 实时自适应限流方法、限流服务系统和限流器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108183907A (zh) * 2017-12-29 2018-06-19 浪潮通用软件有限公司 一种认证方法、服务器及认证系统
CN109104378A (zh) * 2018-08-17 2018-12-28 四川新网银行股份有限公司 基于时间序列预测的智能令牌预回收方法
CN109714268A (zh) * 2019-01-23 2019-05-03 平安科技(深圳)有限公司 一种虚拟私有云的流量控制方法及相关装置
CN109842565A (zh) * 2018-12-15 2019-06-04 平安科技(深圳)有限公司 接口限流方法、装置、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108183907A (zh) * 2017-12-29 2018-06-19 浪潮通用软件有限公司 一种认证方法、服务器及认证系统
CN109104378A (zh) * 2018-08-17 2018-12-28 四川新网银行股份有限公司 基于时间序列预测的智能令牌预回收方法
CN109842565A (zh) * 2018-12-15 2019-06-04 平安科技(深圳)有限公司 接口限流方法、装置、电子设备及存储介质
CN109714268A (zh) * 2019-01-23 2019-05-03 平安科技(深圳)有限公司 一种虚拟私有云的流量控制方法及相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网友: "API接口限流方案", 《COSCHINA》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314238A (zh) * 2020-02-03 2020-06-19 网银在线(北京)科技有限公司 令牌的管理方法和装置、存储介质、电子装置
CN111314238B (zh) * 2020-02-03 2023-12-05 网银在线(北京)科技有限公司 令牌的管理方法和装置、存储介质、电子装置
CN112631928A (zh) * 2020-12-30 2021-04-09 上海中通吉网络技术有限公司 基于令牌桶的性能测试方法、装置及设备
CN114024908A (zh) * 2021-11-03 2022-02-08 蚂蚁胜信(上海)信息技术有限公司 实时自适应限流方法、限流服务系统和限流器

Similar Documents

Publication Publication Date Title
US9727372B2 (en) Scheduling computer jobs for execution
US7734676B2 (en) Method for controlling the number of servers in a hierarchical resource environment
KR102207050B1 (ko) 분산 컴퓨터 시스템에 전력 할당의 변화가 있을 때 중단될 수 있고 중단될 수 없는 작업들을 관리하는 방법들 및 장치
US8424007B1 (en) Prioritizing tasks from virtual machines
US10089142B2 (en) Dynamic task prioritization for in-memory databases
US9390130B2 (en) Workload management in a parallel database system
CN110417678A (zh) 一种应用程序接口限流的方法及装置
US8818989B2 (en) Memory usage query governor
US11734073B2 (en) Systems and methods for automatically scaling compute resources based on demand
CN110383764B (zh) 无服务器系统中使用历史数据处理事件的系统和方法
US20090083746A1 (en) Method for job management of computer system
US20060206900A1 (en) Apparatus and program for controlling loads
US20210173573A1 (en) Method for assuring quality of service in distributed storage system, control node, and system
US9424196B2 (en) Adjustment of the number of task control blocks allocated for discard scans
WO2015127668A1 (en) Task centric resource scheduling framework
CN109710416B (zh) 资源调度方法及装置
US20060037021A1 (en) System, apparatus and method of adaptively queueing processes for execution scheduling
Niu et al. Workload adaptation in autonomic DBMSs
CN111753065A (zh) 请求响应方法、系统、计算机系统和可读存储介质
US10740332B2 (en) Memory-aware plan negotiation in query concurrency control
US10095546B2 (en) Batch processing of oversubscribed system based on subscriber usage patterns
US10120719B2 (en) Managing resource consumption in a computing system
CN113010309A (zh) 集群资源调度方法、装置、存储介质、设备和程序产品
US10979359B1 (en) Polling resource management system
CN109582460B (zh) 一种Redis内存数据的淘汰方法和装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191105

RJ01 Rejection of invention patent application after publication