CN115002225A - 一种请求处理方法、装置及可读介质 - Google Patents
一种请求处理方法、装置及可读介质 Download PDFInfo
- Publication number
- CN115002225A CN115002225A CN202210493178.9A CN202210493178A CN115002225A CN 115002225 A CN115002225 A CN 115002225A CN 202210493178 A CN202210493178 A CN 202210493178A CN 115002225 A CN115002225 A CN 115002225A
- Authority
- CN
- China
- Prior art keywords
- service interface
- flow control
- access
- access request
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000000875 corresponding effect Effects 0.000 claims description 18
- 230000002596 correlated effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 14
- SPBWHPXCWJLQRU-FITJORAGSA-N 4-amino-8-[(2r,3r,4s,5r)-3,4-dihydroxy-5-(hydroxymethyl)oxolan-2-yl]-5-oxopyrido[2,3-d]pyrimidine-6-carboxamide Chemical compound C12=NC=NC(N)=C2C(=O)C(C(=O)N)=CN1[C@@H]1O[C@H](CO)[C@@H](O)[C@H]1O SPBWHPXCWJLQRU-FITJORAGSA-N 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 102100021677 Baculoviral IAP repeat-containing protein 2 Human genes 0.000 description 9
- 101000896157 Homo sapiens Baculoviral IAP repeat-containing protein 2 Proteins 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 102100021662 Baculoviral IAP repeat-containing protein 3 Human genes 0.000 description 3
- 101000896224 Homo sapiens Baculoviral IAP repeat-containing protein 3 Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种请求处理方法、装置及可读介质,涉及网络技术领域。所述方法包括:在存在未发送的访问请求的情况下,获取访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量;根据服务接口的第一流控剩余量,向服务接口发送需要访问服务接口的访问请求;其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务接口造成负担的问题。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种请求处理方法、装置及可读介质。
背景技术
目前,服务接口的应用越来越广泛,服务方为了保证自身的稳定性,会针对服务接口设置相应的流控阈值,进行流量控制。在一个并发时间周期内,流控阈值内的访问请求可以被成功响应,正常访问到服务接口,成功调用该API。而超出流控阈值的访问请求则无法被成功响应,无法正常访问到服务接口,会出现调用失败的情况。
对服务接口发起高并发访问时,由于一次会发送多个访问请求,可能会导致超出服务接口的流控阈值,从而导致访问请求无法被成功响应的情况。在先技术中,往往是在出现无法成功响应的情况下,按照预设退避策略不断进行重试。但是,这种方式中,由于重试过程中可能会向服务接口发送大量不会被成功响应的无效请求,因此,会造成处理资源浪费,给服务接口造成负担。
发明内容
鉴于上述问题,本申请实施例提供一种请求处理方法、装置及可读介质,以解决由于重试过程中可能会向服务接口发送大量不会被成功响应的无效请求,因此,会造成处理资源浪费,给服务接口造成负担的问题。
为了解决上述问题,本申请实施例公开了一种请求处理方法,包括:
在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
可选地,在本申请另一实施例中,所述方法还包括:
将所述第二流控剩余量写入为所述服务接口分配的目标缓存中;
所述更新所述第二流控剩余量,包括:
更新所述目标缓存中的第二流控剩余量;所述目标缓存的有效时长不小于所述并发时间周期的时长;
所述方法还包括:
在经过所述有效时长后,清空所述目标缓存。
可选地,在本申请另一实施例中,所述方法还包括:
根据所述请求中的访问的服务接口信息,生成用于表征接口身份的关键字;
所述将所述第二流控剩余量写入为所述服务接口分配的目标缓存中,包括:
将所述第二流控剩余量写入与所述关键字对应的目标缓存中。
可选地,在本申请另一实施例中,所述获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量,包括:
接收所述服务接口针对访问请求所返回的响应信息;所述响应信息中包括所述服务接口在所述并发时间周期内的第一流控剩余量;
从所述响应信息中提取所述第一流控剩余量。
可选地,在本申请另一实施例中,所述方法还包括:
在所述第一流控剩余量不大于第二预设阈值和/或接收到的所述服务接口返回的响应信息用于表征所述服务接口响应失败的情况下,在下一并发时间周期内重新获取第一流控剩余量,并根据重新获取的第一流控剩余量,向所述服务接口发送所述需要访问所述服务接口的访问请求;
在所述第一流控剩余量大于所述第二预设阈值,执行所述根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求的步骤。
可选地,在本申请另一实施例中,在存在至少两个服务接口的情况下,至少存在部分服务接口的流控阈值不同。
本申请实施例还公开了另一种请求处理方法,应用于客户端,包括:
接收云资源处理任务;
根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口;
对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
相应的,本申请实施例还公开了一种请求处理装置,包括:
第一获取模块,用于在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块,用于根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
本申请实施例还公开了另一种请求处理装置,应用于客户端,包括:
接收模块,用于接收云资源处理任务;
生成模块,用于根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口;
获取模块,用于对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块,用于根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
相应的,本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行上述方法。
相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述方法。
本申请实施例包括以下优点:
本申请实施例包括:在存在未发送的访问请求的情况下,获取访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量;根据服务接口的第一流控剩余量,向服务接口发送需要访问服务接口的访问请求;其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务接口造成负担的问题。
附图说明
图1是本申请一实施例提供的一种实现架构图;
图2是本申请一实施例提供的一种应用场景示意图;
图3是本申请一实施例提供的另一种应用场景示意图;
图4是本申请一实施例提供的又一种应用场景示意图;
图5是本申请一实施例提供的又一种应用场景示意图;
图6是本申请一实施例提供的一种请求处理方法的步骤流程图;
图7是本申请一实施例提供的一种流程示意图;
图8是本申请一实施例提供的另一种请求处理方法的步骤流程图;
图9是本申请一实施例提供的一种请求处理装置的结构图;
图10是本申请一实施例提供的另一种请求处理装置的结构图;
图11是本申请另一实施例提供的一种装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
为使本领域技术人员更好地理解本申请,以下对本申请涉及的概念进行说明:
服务接口:可以指的是服务端提供的应用程序编程接口(ApplicationProgramming Interface,API)。具体的,API可以指的是服务端提供的开放API(open API),向服务接口发送访问请求可以是向提供该服务接口的服务端发送访问请求。
流量控制:又可以称为流控,用于控制同一并发时间周期内对同一服务接口的访问次数。
流控阈值:不同服务接口的流控阈值可以不同,或者,也可以相同。服务接口的流控阈值用于表征在一个并发时间周期内最大可成功响应的用于访问该服务接口的访问请求的数量。例如,API1的流控阈值为1000,那么一个并发时间周期内最大可成功响应1000个用于访问API1的调用请求。
并发时间周期:又可以称为时间片,时间片的长度可以根据实际需求设置。例如,一个时间片可以为1秒。相应地,流控阈值可以表征每秒可成功响应的最大请求数量。
访问请求:用于访问服务接口的请求,访问请求可以是客户端发送给服务端的。其中,访问服务接口可以理解为调用服务接口,服务接口可正常被访问的情况下,服务接口可成功响应访问请求,访问请求可以成功调用该服务接口。服务接口不可正常被访问的情况下,服务接口无法成功响应访问请求,访问请求无法成功调用该服务接口,会出现调用失败。如果并发时间周期内所需访问的服务接口被访问的次数未超过流控阈值,那么访问请求可以被成功响应,服务接口可正常被访问。如果并发时间周期内所需访问的服务接口被访问的次数超过流控阈值,那么访问请求无法被成功响应,服务接口不可正常被访问,会出现调用失败。其中,服务接口被访问的次数可以指的是服务接口已成功响应的访问请求的数量,一般情况下,在未超过流控阈值的情况下,服务接口接收到的访问请求的数量即为成功响应的访问请求的数量。
第一流控剩余量:用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量。并发时间周期内第一流控剩余量可以动态变化。如果服务端在并发时间周期内还未接收到用于访问该服务接口的访问请求,该服务接口在并发时间周期内的第一流控剩余量可以等于流控阈值。随着客户端发送用于访问该服务接口的访问请求,第一流控剩余量会相应地减少。示例性地,假设流控阈值为1000,并发时间周期内已经接收到500个用于访问该服务接口的访问请求,该服务接口已经成功响应500个访问请求,那么该服务接口在并发时间周期内的第一流控剩余量为500。进一步地,如果再次接收到300个用于访问该服务接口的访问请求,那么该服务接口在并发时间周期内的第一流控剩余量变为200。
高并发:指的是同一时间片内向服务接口发送大量访问请求。
退避策略:指的是在遇到调用接口失败后采取的重试策略。例如,按照预设重试间隔重新发送访问请求。
下面对本申请涉及的应用场景进行说明。
参照图1,示出了本申请的一种实现架构图,该实现架构中包括:客户端00以及服务端01。服务端01可以是服务器组成的云平台,或者,也可以是单个服务器。服务端01中可以提供多个服务接口。每个服务接口可以用于执行指定操作,指定操作可以基于实际需求设置,例如,可以为创建、删除、更新、查询、读取等操作。客户端00可以通过访问服务接口执行指定操作,假设服务接口1可以用于创建实例,那么客户端01可以访问服务接口1来创建实例。
在高并发场景中,客户端会以较大的并发数访问服务端中的服务接口,每次会发送多个访问请求。但受限于服务接口的流控阈值,可能会出现访问失败的问题,影响客户端的稳定性。本申请实施例中,客户端00在请求访问服务接口时,对于未发送的访问请求,先获取访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量。根据第一流控剩余量,发送未发送的访问请求中需要访问该服务接口的访问请求。根据实际可成功响应的第一流控剩余量,控制向服务端01发送的访问请求的数量,避免超出服务接口的流控阈值。这样,一定程度上可以避免访问请求未被成功响应,无法正常访问服务接口,导致访问失败,出现流控错误的问题,进而可以降低流控错误的发生概率,避免为了重试而发送大量无效请求带来的损耗,从而避免浪费处理资源、给服务端01造成负担的问题。
参照图2,示出了本申请的一种应用场景示意图,该应用场景中以客户端当前存在M个未发送的访问请求,服务端提供N个API进行说明。假设访问请求1-访问请求100用于访问API1,访问请求101-访问请求M用于访问API2。对于一组访问请求:访问请求1-访问请求100,可以确定API1在并发时间周期内的第一流控剩余量。对于另一组访问请求:访问请求101-访问请求M,可以确定API2在并发时间周期内的第一流控剩余量。
进一步地,对于一组访问请求:访问请求1-访问请求100,可以根据API1的第一流控剩余量,向服务端发送访问请求1-访问请求100中的访问请求,其中,所发送的访问请求数量不大于API1的第一流控剩余量。假设API1的第一流控剩余量为500,那么可以将访问请求1-访问请求100均发送给API1。对于并发时间周期内新产生的用于访问API1的访问请求,由于API1的第一流控剩余量还有余量,因此后续可以继续向服务端发送这些访问请求。对于另一组访问请求:访问请求101-访问请求M,可以根据API2的第一流控剩余量,向服务端发送访问请求101-访问请求M中的访问请求,其中,所发送的访问请求数量不大于API2的第一流控剩余量求。这样,可以避免并发时间周期内出现API1或API2访问失败的问题,进而避免由于重试导致的浪费处理资源、给服务端中服务接口造成负担的问题。需要说明的是,服务端针对接收到的访问请求,可以向客户端返回响应信息(Response)。其中,该响应信息可以用于表征该访问请求是否被成功响应,也就是说,可以用于表征所请求访问的API是否正常被访问。
进一步地,本申请实施例中的访问请求可以是基于在客户端发起的任务生成的。任务可以由用户手动发起,也可以由客户端自动发起。参照图3,示出了本申请的另一种应用场景示意图,用户可以在客户端发起待处理任务,客户端可以基于待处理任务生成多个访问请求。示例性地,客户端可以解析待处理任务,以生成多个访问请求。在发送访问请求时,对于未发送访问请求,客户端可以获取访问请求所需访问的API在并发时间周期内的第一流控剩余量,对于任一所需访问的API,根据该API的第一流控剩余量,向服务端发送用于访问该API的访问请求,以避免所发送的访问请求的数量过大,导致访问失败的问题,进而避免由于重试导致的浪费处理资源、给服务端中服务接口造成负担的问题。由于本次所发送的访问请求的数量不大于第一流控剩余量,因此,服务端可以成功响应该访问请求,访问所需访问的API。相应地,服务端可以返回响应信息,以表征服务接口响应成功,访问请求所需访问的API被成功调用。
其中,上述待处理任务的具体类型可以基于实际需求设置,例如,待处理任务可以为云资源处理任务,例如,资源编排任务。资源编排任务可以用于对资源进行编排,示例性地,资源作为被编排的对象,可以被创建、删除、更新、读取、组合使用等等。资源可以包括实例、服务,等等。其中,实例可以包括虚拟交换机(Vswitch)、弹性计算服务实例(ECS)、数据库实例(RDS),等等,服务可以包括弹性伸缩服务、负载均衡服务,等等。在资源编排场景中,客户端可以为一个资源编排工具,服务端可以为一个云平台。资源可以为云平台提供的云资源,或者,也可以为其他平台提供的资源。该客户端可以与服务端集成,客户端与服务端进行集成时,通常是以调用服务端提供的OpenAPI来实现。在开发过程中,客户端与服务端的集成可以实现一个用于管理资源的客户端,其集成的过程可以指的是封装和调用云平台的OpenAPI,并根据OpenAPI的响应结果做出不同的处理。集成完毕之后,可以以客户端的方式下载和安装该集成好的客户端。当使用的时候,用户可以指定并发创建和管理的并发资源数,客户端可以将这个并发资源数转换为对OpenAPI的并发调用数,以此来实现对云上资源的并发管理。然而,随着任务中使用到的资源类型和资源数量的不断增多,为了提高管理效率,会导致并发数不断增大。但受限于OpenAPI的流控阈值,并发数的不断增大可能会导致资源编排任务的失败。
本申请实施例中,用户可以在客户端发起资源编排任务,访问请求可以是客户端基于资源编排任务生成的。假设资源编排任务对应D个资源,针对每个资源需要依次调用E个API进行编排,那么基于该资源编排任务可以生成D*E个访问请求,得到E组访问请求。参照图4,示出了本申请的又一种应用场景示意图,假设基于资源编排任务生成了3组访问请求:访问请求1-访问请求100、访问请求101-访问请求200、访问请求201-访问请求X。对于一组访问请求,对于未发送的访问请求,客户端可以根据该组访问请求所需访问的API在并发时间周期内的第一流控剩余量,向服务端发送访问请求,以避免所发送的访问请求的数量大于第一流控剩余量,导致调用失败的问题。由于本次所发送的访问请求的数量不大于第一流控剩余量,因此,可以成功调用访问请求所需访问的API。通过成功调用API,可以进行资源编排,执行被调用API可实现的编排操作,例如,创建资源、更新资源、读取资源等等。示例性地,假设发送了Q个访问请求,这Q个访问请求所需访问的API用于创建资源,那么可以创建Q个资源。
参照图5,示出了本申请的又一种应用场景示意图,在该应用场景中,访问请求可以是客户端基于订单处理任务生成的。对于未发送的访问请求,客户端可以根据访问请求所需访问的API在并发时间周期内的第一流控剩余量,向服务端发送访问请求,以调用访问请求所需访问的API。由于发送的访问请求不大于第一流控剩余量,因此,可以成功调用API,进行订单处理。假设本次所调用的API用于更新订单状态,本次发送的访问请求有R个,这些访问请求分别用于指示更新订单1,订单2,…,订单R的状态,那么通过调用的API,可以更新订单1,订单2…,订单R的状态。其中,订单可以为物流订单、支付订单,等等。服务端中还可以提供用于执行其他操作的API,例如,用于创建订单的API、删除订单的API、修改订单的API。可以通过访问这些API进行订单创建、删除、修改。
下面对本申请涉及的请求处理方法进行详细说明。
参照图6,示出了本申请的一种请求处理方法的步骤流程图,该方法可以包括:
步骤101、在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量。
本申请实施例中,未发送的访问请求可以是基于待处理任务生成的所有访问请求,也可以是基于待处理任务生成的所有访问请求中剩余的部分未被发送的访问请求。一个并发时间周期内存在的未发送的访问请求,可以是该并发时间周期内生成的和/或上一个并发时间周期内生成的。服务接口在并发时间周期内的第一流控剩余量可以是基于服务接口的流控阈值以及服务接口在该并发时间周期内的已成功响应的访问请求的数量确定的,例如,第一流控剩余量可以是服务接口的流控阈值与该并发时间周期内已成功响应的访问请求的数量之间的差值。在相同的访问量下,流控阈值越大的服务接口的第一流控剩余量可以越大。
一个并发时间周期内生成的访问请求可以是基于一个或多个待处理任务生成的。存在的未发送的访问请求的数量可能不同,因此,未发送的访问请求可能在一个并发时间周期内发送完毕,也可能经过多个并发时间周期被发送完毕。
步骤102、根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
本申请实施例中,向服务接口发送访问请求,可以是向提供该服务接口的服务端发送访问请求,服务端可以在未超过该服务接口的流控阈值的情况下,根据该访问请求调用该服务接口,以实现接口访问。对于任一所需访问的服务接口,可以根据需要访问该服务接口的访问请求的数量大小,确定本次具体发送的访问请求数量。示例性地,可以在需要访问该服务接口的访问请求的数量不大于第一流控剩余量的情况下,发送所有需要访问该服务接口的访问请求,从而提高所发送的访问请求的数量,提高发送效率。或者,也可以在第一流控剩余量与需要访问该服务接口的访问请求的数量存在较大差值,例如,差值大于第一差值阈值的情况下,才向服务接口发送所有需要访问该服务接口的访问请求。在第一流控剩余量与需要访问该服务接口的访问请求的数量的差值较小,例如,差值不大于第一差值阈值的情况下,向服务接发送部分需要访问该服务接口的访问请求。差值越大,本次发送的访问请求可以越多。这样,可以更大程度的避免由于本次发送操作导致该并发时间周期内访问服务接口的请求数量超出流控阈值,进而可以更大程度的避免出现无法正常访问服务接口的问题。需要说明的是,本申请实施例中的客户端可以为1个或多个,在存在多个客户端的情况下,由于所发送的访问请求的数量小于第一流控剩余量,因此一定程度上可以避免由于其他客户端同时请求访问该服务接口,导致本次发送的访问请求造成访问服务接口的请求数量超出流控阈值的问题。
本申请实施例中可以将用于访问同一服务接口的访问请求作为一组访问请求。针对一组访问请求,在该组访问请求中存在未发送的访问请求的情况下,获取该组访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量,并根据该组访问请求所需访问的服务接口的第一流控剩余量,向该服务接口发送需要访问该服务接口的访问请求。
综上所述,本申请实施例提供的请求处理方法,通过在存在未发送的访问请求的情况下,获取访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量,第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量。根据服务接口的第一流控剩余量,向服务接口发送需要访问服务接口的访问请求。其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务接口造成负担的问题。
可选地,本申请实施例中,还可以在所述第一流控剩余量不大于第二预设阈值和/或接收到的所述服务接口返回的响应信息用于表征所述服务接口响应失败的情况下,在下一并发时间周期内重新获取第一流控剩余量,并根据重新获取的第一流控剩余量,向所述服务接口发送所述需要访问所述服务接口的访问请求。其中,第二预设阈值可以根据实际需求设置,例如,第二预设阈值可以为0。如果第一流控剩余量不大于第二预设阈值和/或服务接口返回的响应信息用于表征服务接口响应失败,则可以确定所需访问的服务接口无法在该并发时间周期内成功响应访问请求。因此,可以等待至下一个并发时间周期,在下一并发时间周期内重新获取第一流控剩余量,并根据重新获取的第一流控剩余量进行发送。这样,可以避免立即重试带来的重复失败的问题,尽可能降低所发送访问请求响应失败的概率。如果第一流控剩余量大于第二预设阈值,则可以执行根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求的步骤,从而尽早将访问请求发送给服务接口,缩短请求处理时长。
在一种实现场景中,可以存在至少两个服务接口,且在存在至少两个服务接口的情况下,至少存在部分服务接口的流控阈值不同。示例性地,至少两个服务接口的流控阈值可以均不相同,或者是存在部分服务接口的流控阈值相同。由于本申请实施例中是基于未发送的访问请求实际所需访问的服务接口的流控剩余量,限制所发送的访问请求的数量,因此,即使是在服务接口的流控阈值存在差异的场景下,也能避免所发送的访问请求过多,导致访问请求无法被成功响应的问题。
可选地,上述获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量的步骤,具体可以包括:
子步骤S21、接收所述服务接口针对访问请求所返回的响应信息;所述响应信息中包括所述服务接口在所述并发时间周期内的第一流控剩余量。
本申请实施例中,响应信息可以具体由提供该服务接口的服务端返回。服务接口针对访问请求所返回的响应信息,可以是该并发时间周期内,针对最近一次接收到的用于访问所需访问的服务接口的访问请求返回的。服务接口针对接收到的任一访问请求,可以返回一个响应信息。由于并行发送的多个访问请求到达服务接口的时间可能存在差异,因此,不同响应信息中携带的第一流控剩余量不同。例如,服务接口的流控阈值为1000,服务接口截止目前已接收到了500个访问请求。对于接收到的第501个访问请求,返回的响应信息中包括的第一流控剩余量可以为499,对于接收到的第502个访问请求,返回的响应信息中包括的第一流控剩余量可以为498。
进一步地,在访问请求正常访问到服务接口或者未正常访问到服务接口的情况下,均会返回响应信息。相应地,在正常访问到服务接口的情况下,返回的响应信息可以用于表征服务接口响应成功,服务接口成功被访问。在未正常访问到服务接口的情况下,返回的响应信息可以用于表征服务接口响应失败,服务接口未正常被访问。
需要说明的是,如果仅存在1个客户端且该并发时间周期内还未向该服务接口发送过访问请求,则可以直接将该服务接口的流控阈值确定为第一流控剩余量。如果存在多个客户端,可以接收服务接口返回的指定信息,该指定信息可以用于表征并发时间周期内还未接收到访问请求,在接收到指定信息的情况下,将该服务接口的流控阈值确定为第一流控剩余量。相应地,在存在多个客户端的情况下,服务接口也可以周期性同步当前的第一流控剩余量,将最新一次同步过来的第一流控剩余量,确定为该服务接口在并发时间周期内的第一流控剩余量。这样,即使在存在多个客户端的情况下,一定程度上也可以确保客户端获取到较为准确的第一流控剩余量。
子步骤S22、从所述响应信息中提取所述第一流控剩余量。
本申请实施例中,可以对响应信息进行解析,从响应信息的指定位置中提取第一流控剩余量。其中,指定位置可以根据实际需求设置,例如,指定位置可以为响应信息的响应头部。
本申请实施例中,通过从接收到的服务接口针对访问请求所返回的响应信息进行提取,即可获取到第一流控剩余量,这样,一定程度上可以确保获取第一流控剩余量的获取效率。且从服务接口返回的响应信息中提取第一流控剩余量,一定程度上可以确保获取的第一流控剩余量符合服务接口的实际情况,从而一定程度上可以确保第一流控剩余量的准确性。
可选地,上述根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求的步骤,可以具体包括:
子步骤S31、对所述第一流控剩余量进行调整,得到第二流控剩余量;所述第二流控剩余量小于所述第一流控剩余量。
由于在获取到第一流控剩余量之后,服务接口的第一流控剩余量可能还会被消耗,例如,服务接口可能接收到其他客户端发送的访问请求,或者是,接收到并行发送的多个访问请求中之后到达的访问请求。这样,会导致服务接口实际的第一流控剩余量降低。也就是说,客户端获取到的第一流控剩余量可能会比目前的实际流控剩余量大。假设服务接口的流控阈值为1000,服务接口截止目前已经接收到了500个访问请求。上一次向服务接口发送了50个访问请求,那么服务接口实际的第一流控剩余量应该为450。但是访问请求到达服务接口的先后顺序存在差异,接收到针对访问请求返回的响应信息的先后顺序也会存在差异。假设先接收到服务接口针对接收到的第530个访问请求返回的响应信息,获取到第一流控剩余量:470。服务接口在接收到所有访问请求之后实际的第一流控剩余量应该为450。如果直接采用获取到的第一流控剩余量进行发送,可能会导致本次所发送的访问请求的数量过多。因此,本申请实施例中,可以对获取到的第一流控剩余量进行调整,以降低第一流控剩余量。这样,后续降低后的数值进行发送,一定程度上可以避免本次发送的访问请求的数量过多的问题。
需要说明的是,本申请实施例中也可以在完成一次并行发送之后,统计接收到的响应信息的数量,在接收到的响应信息的数量与并行发送的访问请求的数量相等的情况下,从多个响应信息中提取最大的第一流控剩余量,从而提高所获取的第一流控剩余量的准确性。
子步骤S32、基于所述第二流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求。
由于获取到的第一流控剩余量可能会偏大,本申请实施例中通过降低第一流控剩余量,得到第二流控剩余量,使得第二流控剩余量更符合服务接口的实际剩余情况。基于第二流控剩余量,向服务接口发送访问请求。由于采用的发送依据更符合服务接口的实际剩余情况,因此,可以更大程度避免发送之后导致服务接口的请求数量超出流控阈值,进而导致需要进行重试的问题。
可选地,在一种实现方式中,上述对所述第一流控剩余量进行调整,得到第二流控剩余量的步骤,具体可以包括:根据预设的第一调整权重,对所述第一流控剩余量进行调整,得到所述第二流控剩余量。其中,第一调整权重可以根据实际需求设置,本申请实施例对此不作限制。例如,第一调整权重可以为0.6。在根据第一调整权重进行调整时,可以采用能够将第一流控剩余量降低的方式,例如,可以计算第一调整权重与第一流控剩余量的乘积,将该乘积作为第二流控剩余量。本实现方式中,仅需直接根据预先设置好的第一调整权重进行调整,即可得到第二流控剩余量,从而一定程度上可以确保调整效率。
在另一种实现方式中,上述对所述第一流控剩余量进行调整,得到第二流控剩余量的步骤,具体可以包括:
子步骤S41、根据所述服务接口在所述并发时间周期内的第一流控剩余量与所述服务接口在所述并发时间周期内的流控阈值,确定所述第一流控剩余量的第二调整权重;其中,所述第二调整权重与所述第一流控剩余量正相关。
本申请实施例中,可以确定第一流控剩余量相对流控阈值的占比,根据占比确定第一流控剩余量的第二调整权重。其中,占比与第一流控剩余量正相关,第二调整权重可以与占比正相关。服务接口的流控阈值可以预先同步给客户端。在确定第二调整权重时,可以确定占比所属的区间,然后将所属区间对应的权重确定为第一流控剩余量的第二调整权重。其中,第二调整权重的最大值可以为1。示例性地,在占比大于70%的情况下,第二调整权重可以为1。
子步骤S42、基于所述第二调整权重调低所述第一流控剩余量,得到所述第二流控剩余量。
示例性地,可以计算第二调整权重与第一流控剩余量的乘积,将该乘积作为第二流控剩余量。本实现方式中,根据服务接口在并发时间周期内的第一流控剩余量与服务接口在并发时间周期内的流控阈值,确定第一流控剩余量的第二调整权重,并基于第二调整权重调低第一流控剩余量,作为第二流控剩余量。其中,第二调整权重与第一流控剩余量正相关。这样,基于所需访问的服务接口的第一流控剩余量,适应性确定调整时采用的调整权重,从而一定程度上可以确保调整后的第二流控剩余量更符合所需访问的服务接口的实际情况下,确保调整后得到的第二流控剩余量的合理性。
可选地,上述基于所述第二流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求的步骤,具体可以包括:
子步骤S51、为需要访问所述服务接口的访问请求设置等待时长;其中,至少部分访问请求的等待时长存在差异。
具体的,可以为需要访问该服务接口的不同访问请求设置不同的等待时长。假设存在100个需要访问该服务接口的访问请求,那么设置的100个等待时长可以均不相同。或者,也可以设置存在部分访问请求的等待时长相同,例如,设置的100个等待时长中可以存在10个相同的等待时长,本申请实施例对此不做限制。
子步骤S52、根据所述访问请求的等待时长向所述服务接口发送所述访问请求;其中,在所述并发时间周期内所发送的访问请求的数量不大于所述第二流控剩余量。
本申请实施例中,为需要访问服务接口的访问请求设置等待时长,并在控制所发送的数量不大于第二流控剩余量的情况下,根据访问请求的等待时长向服务接口发送访问请求,可以更大程度上避免所发送访问请求导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口的问题,进而更大程度上避免进行重试。且由于访问请求的等待时长存在差异,因此,一定程度上可以避免将需要访问同一服务接口的访问请求一次性同时发送给该服务接口,给服务接口造成冲击的问题。
可选地,在一种实现方式中,上述为需要访问所述服务接口的访问请求设置等待时长的步骤,具体可以包括:
子步骤S61、对需要访问同一服务接口的访问请求,在上一个所述访问请求被发送后,设置下一个所述访问请求需要等待的等待时长。
相应地,上述根据所述访问请求的等待时长向所述服务接口发送所述访问请求的步骤,具体可以包括:
子步骤S71、从上一个访问请求发送后,经过所述等待时长再选择一个访问请求进行发送,直至所发送的访问请求的数量达到目标数量为止或者直至所述并发时间周期结束为止;其中,所述目标数量不大于所述第二流控剩余量。
在该实现方式中,可以为需要访问同一服务接口的访问请求逐个设置等待时长,并在达到等待时长之后,逐个发送访问请求。具体的,可以先随机为需要访问同一服务接口的访问请求中的一个访问请求设置一个等待时长,在经过该访问请求的等待时长之后,选择该访问请求进行发送。在发送之后,可以随机为剩余的访问请求中的一个访问请求设置等待时长,在经过该访问请求的等待时长之后,选择该访问请求进行发送。其中,上一个访问请求发送后再选择的一个访问请求,可以是上一个访问请求被发送后被设置等待时长的访问请求。以此类推,在发送的访问请求的数量达到目标数量,或者是,在该并发时间周期结束的情况下,停止发送。其中,目标数量可以根据实际需求设置,例如,目标数量可以等于第二流控剩余量,这样,可以发送更多的访问请求,提高访问效率。目标数量也可以小于第二流控剩余量,这样,可以进一步避免所发送的访问请求的总数量偏大的问题。
本实现方式中,对需要访问同一服务接口的访问请求,在上一个访问请求被发送后,设置下一个访问请求需要等待的等待时长,在上一个访问请求发送后,基于等待时长再选择一个访问请求进行发送,直至所发送的访问请求的数量达到目标数量为止或者直至并发时间周期结束为止。这样,可以使所发送的多个访问请求逐个被发送,从而可以较大程度的缓解服务接口的接收压力。
可选地,在另一种实现中,也可以先为需要访问同一服务接口的访问请求均设置好等待时长之后,再进行发送,从而确保整体操作效率。具体在发送时,可以是在为需要访问同一服务接口的访问请求均设置好等待时长之后,开始计时。如果达到了某个访问请求的等待时长,则可以将该访问请求发送给服务接口,直至所发送的访问请求的数量达到目标数量或者直至并发时间周期结束的情况下,结束发送,并停止计时。或者,也可以是在上一个访问请求被发送后,重新开始计时,直至所发送的访问请求的数量达到目标数量或者直至并发时间周期结束的情况下,结束发送。
可选地,本申请实施例中还可以先获取目标比值,在所述目标比值大于等于预设比值阈值的情况下,进入为需要访问所述服务接口的访问请求设置等待时长的步骤。在所述目标比值小于预设比值阈值的情况下,直接将所述需要访问所述服务接口的访问请求发送给所述服务接口;所述目标比值为需要访问所述服务接口的访问请求的数量与所述第二流控剩余量之间的比值,或者所述目标比值为所述第二流控剩余量与所述服务接口的流控阈值之间的比值。
其中,预设比值阈值可以根据实际需求设置。例如,预设比值阈值可以为1,或者是小于1的数值。在目标比值为需要访问服务接口的访问请求的数量与第二流控剩余量之间的比值的情况下,如果目标比值小于预设比值阈值,则可以认为第二流控剩余量相对充足。因此,可以直接将需要访问服务接口的访问请求发送给服务接口。这样,可以确保发送效率。例如,可以创建多个发送线程,利用多个发送线程将需要访问服务接口的访问请求并行发送给服务接口。如果目标比值大于等于预设比值阈值,则可以认为第二流控剩余量可能不够充足。因此,可以为需要访问服务接口的访问请求设置等待时长,以便于根据等待时长选择访问请求依次发送,进而避免一次性发送过多访问请求。
在目标比值为第二流控剩余量与服务接口的流控阈值之间的比值的情况下,如果目标比值小于预设比值阈值,那么所需访问的服务接口的流控阈值可能较大,所需访问的服务接口单个并发时间周期内可承受的访问请求的数量较大。因此,可以直接将需要访问服务接口的访问请求发送给服务接口。且如果目标比值小于预设比值阈值,所需访问的服务接口目前还能成功响应的访问请求的量可能较少。因此,直接将需要访问服务接口的访问请求发送给服务接口,可以避免在等待过程中服务接口的剩余流控量被其他客户端的访问请求消耗,导致所发送的访问请求响应失败的问题。反之,如果目标比值大于等于预设比值阈值,则可以确定所需访问的服务接口单个并发时间周期内可承受的访问请求的数量较少。因此,可以为需要访问服务接口的访问请求设置等待时长,以便于根据等待时长选择访问请求依次发送,进而避免一次性发送过多访问请求。
本申请实施例中,也可以在第二流控剩余量大于需要访问服务接口的访问请求的数量的情况下,直接发送所有的需要访问服务接口的访问请求。在不大于的情况下,通过设置等待时长,随机发送目标数量个访问请求。根据实际未发送的需要访问所述服务接口的访问请求的数量、服务接口的第二流控剩余量,控制所发送的访问请求的数量,以尽可能避免流控错误发生。
可选地,为需要访问所述服务接口的访问请求设置等待时长的操作,具体可以包括:
子步骤S81:从预设的时长取值范围内随机选择一个值,并将所选择的值设置为所述访问请求的等待时长;其中,所述时长取值范围的最大端值小于所述并发时间周期的时长。
示例性地,可以为任一需要访问该服务接口的访问请求均从时长取值范围内随机选择一个值作为等待时长。本申请实施例中,通过随机选择数值作为访问请求的等待时长,动态设置可访问请求的等待时长,以尽可能避免访问请求的等待时长相同,增加等待时长的随机性。且时长取值范围最大端值小于并发时间周期的时长,一定程度上可以缩小访问请求之间的发送间隔,避免因为设置的等待时长过长,导致访问请求需要等待至下一个并发时间周期内,该并发时间周期内可发送的访问请求的数量较少,进而降低请求发送效率的问题。
需要说明的是,访问请求的等待时长也可以设置为固定值,在发送时以固定的等待间隔对访问请求进行发送。进一步地,由于请求并发时,请求在并发时间周期内发出的时刻往往是随机分布的。相对设置固定的等待间隔的方式,为访问请求设置等待时长时也采用随机设置的方式,使得访问请求的等待时长的分布可以尽量遵循并发的请求的发出规律,进而可以整体上降低请求的等待时间,提高请求处理效率。
其中,时长取值范围可以通过下述方式确定:获取所述服务接口的并发时间周期,下限权重值以及上限权重值;根据所述下限权重值、上限权重值以及所述并发时间周期,确定所述时长取值范围。其中,下限权重值以及上限权重值可以根据实际需求设置,例如,下限权重值可以为0.1,上限权重值可以为0.8。可以计算下限权重值与并发时间周期的时长之间的乘积,得到最小端值,计算上限权重值与并发时间周期的时长之间的乘积,得到最大端值。基于最小端值以及最大端值组成时长取值范围。假设N表示发时间周期,那么时长取值范围可以为0.1N~0.8N。本申请实施例中,通过获取下限权重值以及上限权重值,基于下限权重值以及上限权重值以及并发时间周期,确定时长取值范围。这样,一定程度上可以使得时长取值范围更加合理,避免选择的等待时长过短或过长的问题,使得等待时长更加合理精确。
由于服务接口的流控策略中并发时间周期通常是对连续时间的划分,每个并发时间周期的时长较短,在服务接口本身流控阈值不高的时候,如果放行与流控阈值相同量的请求,产生流控错误的概率较高。本申请实施例中基于并发时间周期确定的时长取值范围,随机选择一个值作为等待时长,以此控制所发送的访问请求之间的间隔时长,从而尽可能避免流控错误的发生。
可选地,本申请实施例中还可以在所述访问请求被发送之后,更新所述第二流控剩余量;在所述第二流控剩余量达到第一预设阈值且时间还处于所述并发时间周期内的情况下,停止发送所述访问请求。本申请实施例中,通过更新第二流控剩余量,基于第二流控剩余量的具体值即可判断是否需要停止发送,从而一定程度上可以提高处理效率。同时,通过及时更新第二流控剩余量,可以防止对后续发送请求造成阻塞。
其中,更新第二流控剩余量可以是在访问请求被发送之后,根据所发送的访问请求的数量更新第二流控剩余量。具体的,可以在第二流控剩余量的基础上减去所发送的访问请求的数量,得到更新后的第二流控剩余量。假设上一次发送了1个访问请求,那么可以将第二流控剩余量减一,以实现更新。第一预设阈值可以根据实际需求设置,第一预设阈值可以为第二流控剩余量与目标数量之差。例如,第一预设阈值可以为0,也就是说,前述目标数值可以等于第二流控剩余量。如果第二流控剩余量达到第一预设阈值,则可以确定已发送的访问请求的数量已达到目标数量。当然,目标数值可以小于第二流控剩余量,第一预设阈值可以大于0,这样,可以使得本次所发送的访问请求的总数量小于第二流控剩余量。
在每次更新之后,可以检测更新后的第二流控剩余量是否等于第一预设阈值。如果时间还处于并发时间周期内,且更新后的第二流控剩余量不等于第一预设阈值,则说明确定该并发时间周期的第一流控阈值后,已发送的访问请求的数量还未达到目标数量。因此,可以从上一个访问请求发送后,经过等待时长再继续从剩余的访问请求中选择一个访问请求进行发送,直至该并发时间周期内第二流控剩余量达到第一预设阈值的情况下为止。当然,如果该并发时间周期结束,已经进入下一个并发时间周期,那么剩余的未发送的访问请求可以在该下一个并发时间周期内继续发送。
可选地,本申请实施例中还可以在得到第二流控剩余量之后,将所述第二流控剩余量写入为所述服务接口分配的目标缓存中。上述更新所述第二流控剩余量的操作,具体可以包括:更新所述目标缓存中的第二流控剩余量;所述目标缓存的有效时长不大于所述并发时间周期的时长。其中,目标缓存可以是客户端中用于存储流控剩余量的缓存区。需要说明的是,在一种实现方式中,可以不对第一流控剩余量进行调整,将第一流控剩余量写入目标缓存中,直接按照第一流控剩余量进行发送。
在更新第二流控剩余量时,可以从目标缓存中读取第二流控剩余量,将更新后的第二流控剩余量重新写入目标缓存,并目标缓存中覆盖之前的第二流控剩余量。
进一步地,本申请实施例中还可以在经过目标缓存的有效时长后,清空所述目标缓存。由于目标缓存的有效时长不小于并发时间周期的时长,在经过目标缓存的有效时长后清空目标缓存,可以避免并发时间周期还未结束的情况下,目标缓存被清空进而导致第二流控剩余量丢失,无法基于第二流控剩余量对所发送请求进行数量限制,从而导致访问出错的问题。
可选地,本申请实施例中还可以根据所述请求中的访问的服务接口信息,生成用于表征接口身份的关键字。其中,服务接口信息可以包括为服务接口的名称、编号,等等,不同服务接口的关键字可以不同。在生成关键字时,可以直接将服务接口信息确定为该服务接口的关键字,或者是,对服务接口信息进一步地处理后,例如,增加预设字符之后,得到关键字。
相应地,将所述第二流控剩余量写入为所述服务接口分配的目标缓存中的操作,具体可以包括:
子步骤S91、将所述第二流控剩余量写入与所述关键字对应的目标缓存中。
关键字对应的目标缓存可以是为该关键字所表征的服务接口分配的目标缓存。
本申请实施例中,通过为服务接口生成表征接口身份的关键字,并基于关键字将第二流控剩余量写入与关键字对应的目标缓存,可以方便后续基于关键字查找服务接口的第二流控剩余量。
具体的,可以将服务接口的关键字作为键名(key),将服务接口的第二流控剩余量作为键值(value),以键值对的形式写入目标缓存中。这样,即使在多个服务接口共享目标缓存的情况下,也可以基于键值对中的键名便捷的区分不同的服务接口。当然,也可以为不同服务接口分配独立的目标缓存,本申请实施例对此不作限制。
在先技术中,往往不对所发送请求的数量进行限制,仅是在出现流控错误,发生访问失败的情况下,进行重试。例如,以最大重试次数以及固定间隔或基于指数算法选择的间隔进行重试,或者,以用户自定义设置的重试参数或者策略进行重试,又或者基于错误码对应的几种固定重试策略进行重试。在不断重试的过程中,延时的程度会增长,进而会导致客户端任务的执行时长也会不断加大,影响任务执行效率。且重试次数的不断增多,将导致大量的无效的请求发送给服务端,对服务端造成冲击。
以同一组访问请求用于访问服务端的同一服务接口进行说明。图7是本申请实施例提供的一种流程示意图,如图7所示,对于一组访问请求,客户端可以先判断是否存在未发送的访问请求。如果存在,则判断目标缓存中的第二流控剩余量是否大于未发送的访问请求的数量。如果大于,则采用设置等待时长,按照等待时长逐个发送的方式。如果不大于则可以采用直接发送的方式。
在发送访问请求之后,服务端会返回响应信息。如果响应信息中携带的第一流控剩余量充足,且响应信息用于表征响应成功。则可以计算第二流控剩余量,并将本次计算得到第二流控剩余量写入目标缓存中。否则,可以等待下一个并发时间周期内再进行重试。其中,第一流控剩余量充足可以指的是第一流控剩余量大于0。
一个并发时间周期内可能会多次获取第一流控剩余量,因此可以多次计算得到新的第二流控剩余量并写入目标缓存。在按照等待时长逐个发送之后,所更新的第二流控剩余量可以是最近一次写入的第二流控剩余量,该第二流控剩余量可以在后续过程中被新写入的第二流控剩余量覆盖。进一步地,一个并发时间周期内多次得到的第二流控剩余量往往会随着服务接口已响应访问请求的数量而动态变化。因此,本申请实施例中,可以基于第二流控剩余量相应地动态调整所发送的访问请求的数量,从而较大程度上避免流控错误的发生,减低流控错误的发生次数,使客户端在高并发场景下,保证任务执行成功的同时,尽可能缩短任务运行时长,提升任务的执行效率。
进一步地,相较于在先技术中通过调整重试时长,尽量缩短重试时长进行多次重试,以提高重试成功率的方式,本申请实施例中由于流控错误的发生次数较少,因此可以在每次出现流控错误后,等至下一并发时间周期内进行重试,从而在确保重试成功率的同时,避免进行多次重试。
需要说明的是,本申请实施例中可以建立一个用于处理访问同一服务接口的访问请求的控制器,通过该控制器实现根据流控剩余量以及访问请求的数量对访问请求的发送过程进行控制,以尽可能避免大量流控错误的出现。其中,上述流控剩余量可以指的是第一流控剩余量或者第二流控剩余量。本申请实施例中,还可以在首次发送时,按照默认方式进行发送,在触发一次流控错误之后,进行并发降低。其中,并发降级可以指的是获取服务接口的第一流控剩余量,根据第一流控剩余量确定所发送的访问请求。
参照图8,示出了本申请的另一种请求处理方法的步骤流程图,该方法可以应用于客户端,该方法包括:
步骤201、接收云资源处理任务。
其中,云资源处理任务可以是用户在客户端发起的资源编排任务。
步骤202、根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口。
其中,访问请求的请求参数中可以包括用于表征所需访问的服务接口的接口信息,可以将接口信息一致的访问请求作为一组访问请求。
步骤203、对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量。
具体的,可以对于任意一组访问请求,均获取该组访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量。或者,对于部分组访问请求,获取该组访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量。
步骤204、根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
具体地,各个步骤的实现方式可以参照前述相关描述,此处不做赘述。
需要说明的是,本申请实施例中涉及到的数据以及其他使用到的信息、信号或数据的过程,都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
综上所述,本申请实施例提供的请求处理方法,接收云资源处理任务。根据云资源处理任务,生成至少一组访问请求。其中,同一组访问请求用于访问服务端的同一服务接口,服务端存在至少一个服务接口。对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量。第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量。根据服务接口的第一流控剩余量,向服务端发送访问请求以对服务接口进行访问。其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务端造成负担的问题。
参照图9,示出了本申请的一种请求处理装置的结构图,该装置30可以包括:
第一获取模块301,用于在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块302,用于根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
综上所述,本申请实施例提供的请求处理装置,通过在存在未发送的访问请求的情况下,获取访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量,第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量。根据服务接口的第一流控剩余量,向服务接口发送需要访问服务接口的访问请求。其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务接口造成负担的问题。
可选地,所述发送模块302,具体用于:
对所述第一流控剩余量进行调整,得到第二流控剩余量;所述第二流控剩余量小于所述第一流控剩余量;
基于所述第二流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求。
可选地,所述发送模块302,还具体用于:
根据预设的第一调整权重,对所述第一流控剩余量进行调整,得到所述第二流控剩余量;
或者,根据所述服务接口在所述并发时间周期内的第一流控剩余量与所述服务接口在所述并发时间周期内的流控阈值,确定所述第一流控剩余量的第二调整权重;以及基于所述第二调整权重调低所述第一流控剩余量,得到所述第二流控剩余量;其中,所述第二调整权重与所述第一流控剩余量正相关。
可选地,所述发送模块302,还具体用于:
为需要访问所述服务接口的访问请求设置等待时长;其中,至少部分访问请求的等待时长存在差异;
根据所述访问请求的等待时长向所述服务接口发送所述访问请求;其中,所发送的访问请求的数量不大于所述第二流控剩余量。
可选地,所述发送模块302,还具体用于:
对需要访问同一服务接口的访问请求,在上一个所述访问请求被发送后,设置下一个所述访问请求需要等待的等待时长;
从上一个访问请求发送后,经过所述等待时长再选择一个访问请求进行发送,直至所发送的访问请求的数量达到目标数量为止或者直至所述并发时间周期结束为止;其中,所述目标数量不大于所述第二流控剩余量。
可选地,所述发送模块302,还具体用于:
从预设的时长取值范围内随机选择一个值,并将所选择的值设置为所述访问请求的等待时长;其中,所述时长取值范围的最大端值小于所述并发时间周期的时长。
可选地,所述装置30还包括:
第二获取模块,用于获取所述服务接口的并发时间周期,下限权重值以及上限权重值;
确定模块,用于根据所述下限权重值、上限权重值以及所述并发时间周期,确定所述时长取值范围。
可选地,所述装置30还包括:
更新模块,用于在所述访问请求被发送之后,更新所述第二流控剩余量;
停止模块,用于在所述第二流控剩余量达到第一预设阈值的情况下,且时间还处于所述并发时间周期内,停止发送所述访问请求。
可选地,所述装置30还包括:
第三获取模块,用于获取目标比值;所述目标比值为需要访问所述服务接口的访问请求的数量与所述第二流控剩余量之间的比值,或者所述目标比值为所述第二流控剩余量与所述服务接口的流控阈值之间的比值;
在所述目标比值大于等于预设比值阈值的情况下,进入为需要访问所述服务接口的访问请求设置等待时长的步骤;
在所述目标比值小于所述预设比值阈值的情况下,直接将所述需要访问所述服务接口的访问请求发送给所述服务接口。
可选地,所述装置30还包括:
写入模块,用于将所述第二流控剩余量写入为所述服务接口分配的目标缓存中;
所述更新模块,具体用于:
更新所述目标缓存中的第二流控剩余量;所述目标缓存的有效时长不小于所述并发时间周期的时长;
所述装置30还包括:清空模块,用于在经过所述有效时长后,清空所述目标缓存。
可选地,所述装置30还包括:
生成模块,用于根据所述请求中的访问的服务接口信息,生成用于表征接口身份的关键字;
所述写入模块,具体用于:
将所述第二流控剩余量写入与所述关键字对应的目标缓存中。
可选地,所述第一获取模块301,具体用于:
接收所述服务接口针对访问请求所返回的响应信息;所述响应信息中包括所述服务接口在所述并发时间周期内的第一流控剩余量;
从所述响应信息中提取所述第一流控剩余量。
可选地,所述装置30还包括:
第四获取模块,用于在所述第一流控剩余量不大于第二预设阈值和/或接收到的所述服务接口返回的响应信息用于表征所述服务接口响应失败的情况下,在下一并发时间周期内重新获取第一流控剩余量,并根据重新获取的第一流控剩余量,向所述服务接口发送所述需要访问所述服务接口的访问请求;
执行模块,用于在所述第一流控剩余量大于所述第二预设阈值,执行所述根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求的步骤。
可选地,在存在至少两个服务接口的情况下,至少存在部分服务接口的流控阈值不同。
参照图10,示出了本申请的另一种请求处理装置的结构图,应用于客户端,该装置40可以包括:
接收模块401,用于接收云资源处理任务;
生成模块402,用于根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口;
获取模块403,用于对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块404,用于根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
综上所述,本申请实施例提供的请求处理装置,接收云资源处理任务。根据云资源处理任务,生成至少一组访问请求。其中,同一组访问请求用于访问服务端的同一服务接口,服务端存在至少一个服务接口。对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量。第一流控剩余量用于表征服务接口在并发时间周期内可成功响应访问请求的请求剩余数量。根据服务接口的第一流控剩余量,向服务端发送访问请求以对服务接口进行访问。其中,所发送的访问请求的数量不大于第一流控剩余量。这样,一定程度上可以避免所发送的访问请求过多导致所需访问的服务接口的请求数量超出流控阈值,无法正常访问服务接口,访问请求无法被成功响应的问题,进而避免为了进行重试而发送无效请求,导致浪费处理资源、给服务端造成负担的问题。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图11是本申请实施例提供的一种装置的结构示意图。参见图11,服务器800可以用于实施上述实施例中提供的请求处理方法。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储的或持久存储的。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,一个或一个以上键盘856,和/或和,一个或一个以上操作***841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,处理器822可以在服务器800上执行以下操作的指令:
在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述方法。
本申请提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行上述方法。
本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种请求处理方法,其特征在于,所述方法包括:
在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求,包括:
对所述第一流控剩余量进行调整,得到第二流控剩余量;所述第二流控剩余量小于所述第一流控剩余量;
基于所述第二流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一流控剩余量进行调整,得到第二流控剩余量,包括:
根据预设的第一调整权重,对所述第一流控剩余量进行调整,得到所述第二流控剩余量;
或者,根据所述服务接口在所述并发时间周期内的第一流控剩余量与所述服务接口在所述并发时间周期内的流控阈值,确定所述第一流控剩余量的第二调整权重;以及基于所述第二调整权重调低所述第一流控剩余量,得到所述第二流控剩余量;其中,所述第二调整权重与所述第一流控剩余量正相关。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述第二流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求,包括:
为需要访问所述服务接口的访问请求设置等待时长;其中,至少部分访问请求的等待时长存在差异;
根据所述访问请求的等待时长向所述服务接口发送所述访问请求;其中,所发送的访问请求的数量不大于所述第二流控剩余量。
5.根据权利要求4所述的方法,其特征在于,所述为需要访问所述服务接口的访问请求设置等待时长,包括:
对需要访问同一服务接口的访问请求,在上一个所述访问请求被发送后,设置下一个所述访问请求需要等待的等待时长;
所述根据所述访问请求的等待时长向所述服务接口发送所述访问请求,包括:
从上一个访问请求发送后,经过所述等待时长再选择一个访问请求进行发送,直至所发送的访问请求的数量达到目标数量为止或者直至所述并发时间周期结束为止;其中,所述目标数量不大于所述第二流控剩余量。
6.根据权利要求4所述的方法,其特征在于,所述为需要访问所述服务接口的访问请求设置等待时长,包括:
从预设的时长取值范围内随机选择一个值,并将所选择的值设置为所述访问请求的等待时长;其中,所述时长取值范围的最大端值小于所述并发时间周期的时长。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述服务接口的并发时间周期,下限权重值以及上限权重值;
根据所述下限权重值、上限权重值以及所述并发时间周期,确定所述时长取值范围。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述访问请求被发送之后,更新所述第二流控剩余量;
在所述第二流控剩余量达到第一预设阈值的情况下,且时间还处于所述并发时间周期内,停止发送所述访问请求。
9.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取目标比值;所述目标比值为需要访问所述服务接口的访问请求的数量与所述第二流控剩余量之间的比值,或者所述目标比值为所述第二流控剩余量与所述服务接口的流控阈值之间的比值;
在所述目标比值大于等于预设比值阈值的情况下,进入为需要访问所述服务接口的访问请求设置等待时长的步骤;
在所述目标比值小于所述预设比值阈值的情况下,直接将所述需要访问所述服务接口的访问请求发送给所述服务接口。
10.一种请求处理方法,应用于客户端,其特征在于,所述方法包括:
接收云资源处理任务;
根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口;
对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
11.一种请求处理装置,其特征在于,所述装置包括:
第一获取模块,用于在存在未发送的访问请求的情况下,获取所述访问请求所需访问的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块,用于根据所述服务接口的第一流控剩余量,向所述服务接口发送需要访问所述服务接口的访问请求;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
12.一种请求处理装置,应用于客户端,其特征在于,所述装置包括:
接收模块,用于接收云资源处理任务;
生成模块,用于根据所述云资源处理任务,生成至少一组访问请求;其中,同一组访问请求用于访问服务端的同一服务接口,所述服务端存在至少一个服务接口;
获取模块,用于对于一组访问请求,在存在未发送的访问请求的情况下,从服务端获取对应的服务接口在并发时间周期内的第一流控剩余量;所述第一流控剩余量用于表征所述服务接口在所述并发时间周期内可成功响应访问请求的请求剩余数量;
发送模块,用于根据所述服务接口的第一流控剩余量,向所述服务端发送所述访问请求以对所述服务接口进行访问;其中,所发送的访问请求的数量不大于所述第一流控剩余量。
13.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行所述指令时,使得所述装置执行如权利要求1至10的方法。
14.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,执行如权利要求1至10的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210493178.9A CN115002225A (zh) | 2022-05-07 | 2022-05-07 | 一种请求处理方法、装置及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210493178.9A CN115002225A (zh) | 2022-05-07 | 2022-05-07 | 一种请求处理方法、装置及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115002225A true CN115002225A (zh) | 2022-09-02 |
Family
ID=83025397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210493178.9A Pending CN115002225A (zh) | 2022-05-07 | 2022-05-07 | 一种请求处理方法、装置及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002225A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408088A (zh) * | 2014-11-11 | 2015-03-11 | 北京奇虎科技有限公司 | 并发请求的控制方法及装置 |
CN108683604A (zh) * | 2018-04-03 | 2018-10-19 | 平安科技(深圳)有限公司 | 并发访问控制方法、终端设备及介质 |
CN108874948A (zh) * | 2018-06-05 | 2018-11-23 | 中国农业银行股份有限公司 | 一种网站资源访问方法及装置 |
CN109962855A (zh) * | 2017-12-14 | 2019-07-02 | 深圳市融汇通金科技有限公司 | 一种web服务器的限流方法、限流装置及终端设备 |
CN110120973A (zh) * | 2019-04-28 | 2019-08-13 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
WO2020083189A1 (zh) * | 2018-10-24 | 2020-04-30 | 北京金山云网络技术有限公司 | 一种请求处理方法、装置及api网关和可读存储介质 |
CN111858046A (zh) * | 2020-07-13 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 服务请求的处理方法及装置、存储介质、电子装置 |
CN114238037A (zh) * | 2022-02-28 | 2022-03-25 | 北京金堤科技有限公司 | 高并发服务请求结果存储方法和装置、以及电子设备和存储介质 |
-
2022
- 2022-05-07 CN CN202210493178.9A patent/CN115002225A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408088A (zh) * | 2014-11-11 | 2015-03-11 | 北京奇虎科技有限公司 | 并发请求的控制方法及装置 |
CN109962855A (zh) * | 2017-12-14 | 2019-07-02 | 深圳市融汇通金科技有限公司 | 一种web服务器的限流方法、限流装置及终端设备 |
CN108683604A (zh) * | 2018-04-03 | 2018-10-19 | 平安科技(深圳)有限公司 | 并发访问控制方法、终端设备及介质 |
CN108874948A (zh) * | 2018-06-05 | 2018-11-23 | 中国农业银行股份有限公司 | 一种网站资源访问方法及装置 |
WO2020083189A1 (zh) * | 2018-10-24 | 2020-04-30 | 北京金山云网络技术有限公司 | 一种请求处理方法、装置及api网关和可读存储介质 |
CN110120973A (zh) * | 2019-04-28 | 2019-08-13 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
CN111858046A (zh) * | 2020-07-13 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 服务请求的处理方法及装置、存储介质、电子装置 |
CN114238037A (zh) * | 2022-02-28 | 2022-03-25 | 北京金堤科技有限公司 | 高并发服务请求结果存储方法和装置、以及电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9984013B2 (en) | Method, controller, and system for service flow control in object-based storage system | |
CN110489447B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
US8719297B2 (en) | System for managing data collection processes | |
JP4028674B2 (ja) | 多重システム・クラスタ内のサーバの数を制御する方法及び装置 | |
US11316792B2 (en) | Method and system of limiting traffic | |
US11102289B2 (en) | Method for managing resource state information and system for downloading resource | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、***及存储介质 | |
CN113010260A (zh) | 容器数量弹性伸缩方法以及容器数量弹性伸缩方法*** | |
CN112068934B (zh) | 一种容器云服务实例收缩的控制***和方法 | |
US10884667B2 (en) | Storage controller and IO request processing method | |
CN112165436A (zh) | 流量控制方法、装置及*** | |
CN104618493A (zh) | 数据请求处理方法及装置 | |
CN106973091B (zh) | 分布式内存数据重分布方法及***、主控服务器 | |
US9135064B2 (en) | Fine grained adaptive throttling of background processes | |
CN111078386A (zh) | 一种分布式调度***的控制方法及控制装置 | |
CN115002225A (zh) | 一种请求处理方法、装置及可读介质 | |
CN109582460B (zh) | 一种Redis内存数据的淘汰方法和装置 | |
CN116244061A (zh) | 一种基于k8s的Pod调度方法、存储介质及设备 | |
CN111176848B (zh) | 集群任务的处理方法、装置、设备和存储介质 | |
CN117519953B (zh) | 一种面向服务器无感知计算的分离式内存管理方法 | |
CN114338816B (zh) | 无服务器架构下的并发控制方法、装置、设备及存储介质 | |
CN112463754B (zh) | Hdfs中数据节点切换方法、装置及计算机设备 | |
CN109391588B (zh) | 请求处理方法和装置 | |
CN112783627A (zh) | 一种批处理方法及装置 | |
CN117724849A (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 |