CN114679452A - 接口调用方法、装置、电子设备和存储介质 - Google Patents
接口调用方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114679452A CN114679452A CN202210195601.7A CN202210195601A CN114679452A CN 114679452 A CN114679452 A CN 114679452A CN 202210195601 A CN202210195601 A CN 202210195601A CN 114679452 A CN114679452 A CN 114679452A
- Authority
- CN
- China
- Prior art keywords
- api
- server
- target
- calling
- call
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及一种接口调用方法、装置、电子设备和存储介质。该方法应用于第一服务器,所述第一服务器为预设时间段内未调用API的服务器;该方法包括:将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。该方法能够解决API异常超量的问题。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种接口调用方法、装置、电子设备和存储介质。
背景技术
应用程序编程接口(Application Programming Interface,API)是一些预先定义的接口,无需访问源码,或无需理解内部工作机制的细节,即可实现计算机软件之间的相互通信。API的一个主要功能是提供通用功能集,API同时也是一种中间件,为各种不同平台提供数据共享。
现有技术中,可以向用户开放API业务,用户获取API调用权限后,会在网关服务器和数据库中各存储一个API的可调用次数,在API的可调用次数扣减至0之前,均可以基于接收到的API调用请求来调用相应的API。
然而,在集群方式部署的多个网关服务器中,若在网关服务器存储的API的可调用次数失效前连续调用API,实际可调用的次数会远大于API的可调用次数,从而导致API异常超量的问题。
发明内容
本公开提供了一种接口的调用方法、装置、电子设备和存储介质,能够解决API异常超量的问题。
第一方面,本公开提供了一种接口调用方法,应用于第一服务器,所述第一服务器为预设时间段内未调用API的服务器;
所述方法包括:
将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统;
根据所述API目标调用次数,响应API调用请求。
可选的,所述将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,包括:
接收更新指令,所述更新指令中包括从所述目标数据库中获取的所述API目标调用次数;
根据所述更新指令,将本地缓存的所述API调用次数更新为所述API目标调用次数。
可选的,所述根据所述API目标调用次数,响应API调用请求,包括:
若所述API目标调用次数大于阈值次数,允许调用相应的API;
若所述API目标调用次数等于所述阈值次数,禁止调用相应的API,并返回API调用超量的提示信息。
可选的,所述根据所述API目标调用次数,响应API调用请求之前,还包括:
根据所述API调用请求的时间,确定本地缓存未失效;
从本地缓存中获取所述API目标调用次数。
可选的,所述允许调用相应的API之后,还包括:
更新本地缓存的所述API目标调用次数,以使所述目标数据库同步更新所述API目标调用次数。
第二方面,本公开提供了一种接口调用方法,包括:
从目标数据库中获取第二服务器对应的API目标调用次数,所述第二服务器为集群系统中预设时间段内调用API的服务器;
将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求,所述第一服务器为所述预设时间段内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
可选的,所述将所述API目标调用次数发送至第一服务器,包括:
根据所述API目标调用次数,生成更新指令,所述更新指令用于指示所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数;
将所述更新指令发送至所述第一服务器。
可选的,所述从目标数据库中获取第二服务器对应的API目标调用次数,包括:
以预设周期从所述目标数据库中获取所述第二服务器对应的所述API目标调用次数。
第三方面,本公开提供了一种接口调用装置,应用于第一服务器,所述第一服务器为预设时间段内未调用API的服务器;
所述接口调用装置包括:
更新模块,用于将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统;
响应模块,用于根据所述API目标调用次数,响应API调用请求。
第四方面,本公开提供了一种接口调用装置,包括:
获取模块,用于从目标数据库中获取第二服务器对应的API目标调用次数,所述第二服务器为集群系统中预设时间内调用API的服务器;
发送模块,用于将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求,所述第一服务器为所述预设时间内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
第五方面,本公开提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面提供的任一种方法的步骤。
第六方面,本公开提供了计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面提供的任一种方法的步骤。
本发明实施例提供的技术方案中,通过将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,API目标调用次数是从目标数据库中获取到的,第二服务器为预设时间段内调用API的服务器,第一服务器和第二服务器属于同一集群系统;根据API目标调用次数,响应API调用请求,由于第二服务器为集群系统中最近调用API的服务器,因此,第二服务器对应的API目标调用次数为集群系统当前可调用API的剩余次数,则第一服务器本地缓存的API目标调用次数为最新的可调用API的剩余次数,如此第一服务器能够基于最新的可调用API的剩余次数来响应接收到的API调用请求,使得最新的可调用API的剩余次数为0时,拒绝调用相应的API,从而能够解决API异常超量的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开提供的一种集群系统的结构示意图;
图2为本公开提供的另一种集群系统的结构示意图;
图3为本公开提供的一种接口调用方法的流程示意图;
图4为本公开提供的另一种接口调用方法的流程示意图;
图5为本公开提供的又一种接口调用方法的流程示意图;
图6为本公开提供的又一种接口调用方法的流程示意图;
图7为本公开提供的又一种接口调用方法的流程示意图;
图8为本公开提供的又一种接口调用方法的流程示意图;
图9为本公开提供的又一种接口调用方法的流程示意图;
图10为本公开提供的又一种接口调用方法的流程示意图;
图11为本公开提供一种接口调用装置的结构示意图;
图12为本公开提供另一种接口调用装置的结构示意图;
图13为本公开提供一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为本公开提供的一种集群系统的结构示意图,如图1所示,集群系统包括多个服务器110,集群系统内的所有服务器110可以向用户提供同一API调用的服务。集群系统接收到用户发送的API调用请求后,可以将API调用请求根据预设分配方式分配给多个服务器110中的一个或者多个,接收到API调用请求的服务器可以对API调用请求进行响应。
示例性的,如图1所示,一个集群系统可以对应一个数据库120,在其他实施方式中,如图2所示,一个集群系统可以对应多个数据库120,且集群系统中的服务器110与数据库120一一对应。如图2所示,集群系统中包括服务器A、服务器B和服务器C,其中,服务器A和数据库a对应,即服务器A可以访问数据库a,服务器B和数据库b对应,即服务器B可以访问数据库b,服务器C和数据库c对应,即服务器C可以访问数据库c。数据库a、数据库b和数据库c可以分别实时监测服务器A、服务器B和服务器C的本地缓存的可调用API的剩余次数,另外,数据库a、数据库b和数据库c之间相互连接,故而数据库a、数据库b和数据库c内各自存储的第二服务器对应的API目标调用次数是互相同步更新,如此,目标数据库可以是所有数据库中的任意一个。
需要说明的是,图1和图2仅示例性展示了集群系统中包括三个服务器,在实际应用中,集群系统中的服务器的数量可以灵活设置,本公开对此不做具体限制。
本公开的技术方案中,第一服务器为集群系统中预设时间段内未提供API调用服务的服务器,第二服务器为集群系统中预设时间段内提供API调用服务的服务器。例如,集群系统包括三个服务器,即服务器A、服务器B和服务器C,其中,服务器A在距当前T1时间段内向用户提供了API调用服务,服务器B和服务器C在距当前T1时间段内均未向用户提供API调用服务,如此,可以认为服务器A为第二服务器,服务器B和服务器C为第一服务器。
本公开中的技术方案中,第二服务器向用户提供API调用服务后,会更新本地缓存的可调用API的剩余次数,目标数据库中的第二服务器对应的API目标调用次数,是基于第二服务器本地缓存的可调用API的剩余次数的更新来同步更新的,显然,目标数据库中存储的第二服务器对应的API目标调用次数即为集群系统当前可调用API的剩余次数。
本公开中,通过将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,API目标调用次数是从目标数据库中获取到的,第二服务器为预设时间段内调用API的服务器,第一服务器和第二服务器属于同一集群系统;根据API目标调用次数,响应API调用请求,由于第二服务器为集群系统中最近调用应用功能程序编程接口API的服务器,因此,第二服务器对应的API目标调用次数为集群系统当前可调用API的剩余次数,则第一服务器本地缓存的API目标调用次数为最新的可调用API的剩余次数,如此第一服务器能够基于最新的可调用API的剩余次数来响应接收到的API调用请求,使得最新的可调用API的剩余次数为0时,拒绝调用相应的API,从而能够解决API异常超量的问题。
图3为本公开提供的一种接口调用方法的流程示意图,图3所示的实施例应用于如图1或图2所示的第一服务器中,具体包括:
S103,将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数。
所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
目标数据库中存储有第二服务器对应的API目标调用次数,第二服务器为预设时间段内调用API的服务器,可以理解为,第二服务器提供的API调用服务为集群系统中距当前时刻最近的一次API调用服务。第二服务器提供API调用服务的同时,会在本地缓存中更新集群系统当前可调用API的剩余次数,即更新为API目标调用次数,目标数据库同步更新第二服务器对应的API目标调用次数,如此,目标数据库中第二服务器对应的API目标调用次数即为集群系统当前可调用API的剩余次数。
第一服务器与第二服务器处于同一集群系统,第一服务器根据目标数据库中第二服务器对应的API目标调用次数,更新本地缓存的可调用API的剩余次数,使得本地缓存更新后的可调用API的剩余次数为API目标调用次数,如此第一服务器本地缓存的可调用API的剩余次数即为集群系统当前可调用API的剩余次数。
例如,集群系统初始可调用API的剩余次数为5,集群系统中包括服务器A、服务器B和服务器C,此时服务器A本地缓存的可调用API的剩余次数均为5,服务器B本地缓存的可调用API的剩余次数均为5,服务器C本地缓存的可调用API的剩余次数均为5,目标数据中存储的可调用的API的剩余次数为5。服务器A首先向用户提供API调用服务后,服务器A本地缓存的可调用API的剩余次数更新为API目标调用次数,即更新为4,此时,服务器A即为第二服务器,服务器B和服务器C均为第一服务器。目标数据库同步更新可调用的API的剩余次数为服务器A对应的API目标调用次数,服务器B本地缓存的可调用API的剩余次数更新为API目标调用次数,服务器C本地缓存的可调用API的剩余次数更新为API目标调用次数。
S105,根据所述API目标调用次数,响应API调用请求。
第一服务器可以基于集群系统当前可调用API的剩余次数,对第一服务器接收到的API调用请求进行响应,例如,若第一服务器本地缓存的API目标调用次数不为0,则说明集群系统当前还有调用API的权限,故而第一服务器允许调用API;若第一服务器本地缓存的API目标调用次数为0,则说明集群系统当前没有调用API的权限,故而第一服务器禁止调用API。
例如,基于上述实施例,服务器B接收到API调用请求,由于当前API目标调用次数为4,显然,集群系统当前仍然具有调用API的权限,即服务器B具有调用API的权限,因此,服务器B允许调用相应的API,以向用户提供API调用服务。
再例如,服务器B接收到API调用请求,而当前API目标调用次数为0,显然,集群系统当前不具有调用API的权限,即服务器B不具有调用API的权限,因此,服务器B禁止调用相应的API,无法向用户提供API调用服务。
本实施例中,通过将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,API目标调用次数是从目标数据库中获取到的,第二服务器为预设时间段内调用API的服务器,第一服务器和第二服务器属于同一集群系统;根据API目标调用次数,响应API调用请求,由于第二服务器为集群系统中最近调用应用功能程序编程接口API的服务器,因此,第二服务器对应的API目标调用次数为集群系统当前可调用API的剩余次数,则第一服务器本地缓存的API目标调用次数为最新的可调用API的剩余次数,如此第一服务器能够基于最新的可调用API的剩余次数来响应接收到的API调用请求,使得最新的可调用API的剩余次数为0时,拒绝调用相应的API,从而能够解决API异常超量的问题。
图4为本公开提供的另一种接口调用方法的流程示意图,图4为图3所示实施例的基础上,执行S103时的一种可能的实现方式的具体描述,如下:
S1031,接收更新指令。
更新指令中包括从所述目标数据库中获取的所述API目标调用次数。
第一服务器能够接收更新指令,更新指令中包括从目标数据库中获取的第二服务器对应的API目标调用次数,更新指令,用于指示第一服务器将其本地缓存的可调用API的剩余次数更新为API目标调用次数。
S1032,根据所述更新指令,将本地缓存的所述API调用次数更新为所述API目标调用次数。
第一服务器接收到更新指令后,可以从更新指令中解析出API目标调用次数,响应于该更新指令,将本地缓存的可调用API的剩余次数更新为API目标调用次数。
本实施例中,通过接收更新指令,更新指令中包括从目标数据库中获取的API目标调用次数;根据更新指令,将本地缓存的API调用次数更新为API目标调用次数,实现第一服务器本地缓存数据的同步。
图5为本公开提供的又一种接口调用方法的流程示意图,图5为图3所示实施例的基础上,执行S105时的一种可能的实现方式的具体描述,如下:
S201,确定所述API目标调用次数是否大于阈值次数。
若是,执行S203;若否,执行S203’。
阈值次数可以设置为0,若API目标调用次数大于0,则认为集群系统当前仍然具有调用API的权限,若API目标调用次数等于0,则认为集群系统当前不具有调用API的权限。API目标调用次数可以是第一服务器从本地缓存中读取得到的,还可以是第一服务器从目标数据库中读取到的,具体可以根据接收到的API调用请求的时间来确定,本实施例对比不做具体限制。
S203,允许调用相应的API。
若第一服务器当前获取到的API目标调用次数大于阈值次数,集群系统当前仍然具有调用API的权限,即第一服务器当前具有调用API的权限,基于此,第一服务器针对接收到的API调用请求,允许调用相应的API,可以向用户提供API调用服务。
S203’,禁止调用相应的API,并返回API调用超量的提示信息。
若第一服务器当前获取到的API目标调用次数等于阈值次数,集群系统当前不具有调用API的权限,即第一服务器不具有调用API的权限,基于此,第一服务器针对接收到的API调用请求,禁止调用相应的API,拒绝向用户提供API调用服务,从而能够避免产生API异常超量。拒绝向用户提供API调用服务时,可以产生API调用超量的提示信息,并将该提示信息发送至用户的客户端,以提示用户当前没有调用API的权限,避免用户进行无效的请求操作。
本实施例中,通过若API目标调用次数大于阈值次数,允许调用相应的API;若API目标调用次数等于阈值次数,禁止调用相应的API,并返回API调用超量的提示信息,使得第一服务器能够在当前可调用API的剩余次数确定是否具有调用API的权限,从而避免出现API异常超量的问题;另外,API异常超量时,能够提示用户当前没有调用API的权限,避免用户进行无效的请求操作。
图6为本公开提供的又一种接口调用方法流程示意图,图6为图5所示实施例的基础上,执行S201之前,还包括:
S301,根据所述API调用请求的时间,确定本地缓存未失效。
第一服务器的本地缓存具有一定的有效期,一般可以设置为5分钟,若API调用请求的时间与本地缓存API目标调用次数的缓存区的建立时间的间隔大于5分钟,则在接收到API调用请求时,本地缓存已经失效。若API调用请求的时间与本地缓存API目标调用次数的缓存区的建立时间的间隔小于等于5分钟,则在接收到API调用请求时,本地缓存未失效。本实施例仅以5分钟为例,对本地缓存的失效进行示例性说明,并不作为对缓存失效时间的限制。
S302,从本地缓存中获取所述API目标调用次数。
若确定本地缓存已失效,则需要从目标数据库中获取API目标调用次数;若确定本地缓存未失效,可以直接从本地缓存中获取API目标调用次数,使得获取API目标调用次数所需的时间较短,有利于提升API调用请求的响应效率。
本实施例中,通过根据API调用请求的时间,确定本地缓存未失效;从本地缓存中获取API目标调用次数,能够快速获取API目标调用次数,有利于提升相应API调用请求的响应效率。
图7为本公开提供的又一种接口调用方法流程示意图,图7为图6所示实施例的基础上,执行S203之后还包括:
S204,更新本地缓存的所述API目标调用次数,以使所述目标数据库同步更新所述API目标调用次数。
第一服务器接收到API调用请求后,从本地缓存中获取API目标调用次数,响应于API调用请求,允许调用相应的API,更新本地缓存的API目标调用次数,例如,更新后的API目标调用次数可以将更新前的API目标调用次数减1。此时的第一服务器转换为第二服务器,目标数据库可以同步更新存储的第二服务器对应的API目标调用次数。
图8为本公开提供的又一种接口调用方法流程示意图,如图8所示,包括:
S101,从目标数据库中获取第二服务器对应的API目标调用次数。
所述第二服务器为集群系统中预设时间段内调用API的服务器。
检测到目标数据库中第二服务器对应的可调用API的剩余次数发生变化时,变化后的可调用API的剩余次数即为API目标调用次数,如此,可以获取到目标数据库中第二服务器对应的API目标调用次数。
例如,检测到目标数据库中第二服务器对应的可调用API的剩余次数从5变为4,即目标数据库中第二服务器对应的API目标调用次数为4。
S102,将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求。
所述第一服务器为所述预设时间段内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
将获取到的API目标调用次数发送给第一服务器,由于目标数据库中第二服务器对应的API目标调用次数源于第二服务器本地缓存的可调用API的剩余次数,故而将API目标调用次数发送给第一服务器即可。第一服务器根据接收到的API目标调用次数,更新本地缓存的可调用API的剩余次数,使得更新后的可调用API的剩余次数为API目标调用次数。第一服务器还可以基于API目标调用次数,响应接收到的API调用请求,若第一服务器本地缓存的API目标调用次数不为0,则说明集群系统当前还有调用API的权限,故而第一服务器允许调用API;若第一服务器本地缓存的API目标调用次数为0,则说明集群系统当前没有调用API的权限,故而第一服务器禁止调用API。
本实施例中,通过从目标数据库中获取第二服务器对应的API目标调用次数,第二服务器为集群系统中预设时间段内调用API的服务器;API目标调用次数发送至第一服务器,以使第一服务器将本地缓存的API调用次数更新为API目标调用次数,并根据API目标调用次数响应API调用请求,第一服务器为预设时间段内未调用API的服务器,第一服务器和第二服务器属于同一集群系统,由于第二服务器为集群系统中最近调用应用功能程序编程接口API的服务器,因此,第二服务器对应的API目标调用次数为集群系统当前可调用API的剩余次数,则第一服务器本地缓存的API目标调用次数为最新的可调用API的剩余次数,如此第一服务器能够基于最新的可调用API的剩余次数来响应接收到的API调用请求,使得最新的可调用API的剩余次数为0时,拒绝调用相应的API,从而能够解决API异常超量的问题。
图9为本公开提供的又一种接口调用方法流程示意图,图9为图8所示实施例的基础上,执行S102时的一种可能的实现方式的具体描述,如下:
S1021,根据所述API目标调用次数,生成更新指令。
所述更新指令用于指示所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数。
基于接收到的API目标调用次数,可以生成更新指令,更新指令中包括从目标数据中获取的API目标调用次数,更新指令,用于指示第一服务器将其本地缓存的可调用API的剩余次数更新为API目标调用次数。
S1022,将所述更新指令发送至所述第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求。
将更新指令发送至第一服务器,使得第一服务器接收到更新指令后,可以解析出API目标调用次数,并响应更新指令,将本地缓存的可调用API的剩余次数更新为API目标调用次数。
本实施例中,通过根据API目标调用次数,生成更新指令,更新指令用于指示第一服务器将本地缓存的API调用次数更新为API目标调用次数;将更新指令发送至第一服务器,如此可以控制第一服务器更新其本地缓存的可调用API的剩余次数。
图10为本公开提供的又一种接口调用方法流程示意图,图10为图8所示实施例的基础上,执行S101时的一种可能的实现方式的具体描述,如下:
S101’,以预设周期从所述目标数据库中获取所述第二服务器对应的所述API目标调用次数。
示例性的,预设周期可以设置为1s,每秒检测一次目标数据库中第二服务器对应的API目标调用次数,在实际应用中,预设周期可以根据实际情况灵活设置,本实施例对此不作具体限制。
本实施例中,通过以预设周期从目标数据库中获取第二服务器对应的API目标调用次数,能够降低数据传输量。
本公开还提供了一种接口调用装置,图11为本发明实施例提供的一种接口调用装置的结构示意图,图11所示的实施例应用于如图1和图2所示的第一服务器中,如图11所示,接口调用装置包括:
更新模块210,用于将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
响应模块220,用于根据所述API目标调用次数,响应API调用请求。
可选的,接口调用装置,还包括:
接收装置,用于接收更新指令,所述更新指令中包括从所述目标数据库中获取的所述API目标调用次数。
更新模块210,进一步用于根据所述更新指令,将本地缓存的所述API调用次数更新为所述API目标调用次数。
可选的,响应模块220,进一步用于若所述API目标调用次数大于阈值次数,允许调用相应的API;若所述API目标调用次数等于所述阈值次数,禁止调用相应的API,并返回API调用超量的提示信息。
可选的,接口调用装置,还包括:
确定模块,用于根据所述API调用请求的时间,确定本地缓存未失效。
获取模块,从本地缓存中获取所述API目标调用次数。
可选的,更新模块210,还用于更新本地缓存的所述API目标调用次数,以使所述目标数据库同步更新所述API目标调用次数。
图12为本发明实施例提供的另一种接口调用装置的结构示意图,如图12所示,接口调用装置包括:
获取模块230,用于从目标数据库中获取第二服务器对应的API目标调用次数,所述第二服务器为集群系统中预设时间段内调用API的服务器。
发送模块240,用于将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求,所述第一服务器为所述预设时间段内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
可选的,发送模块240,进一步用于根据所述API目标调用次数,生成更新指令,所述更新指令用于指示所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数;将所述更新指令发送至所述第一服务器。
可选的,获取模块230,进一步用于以预设周期从所述目标数据库中获取所述第二服务器对应的所述API目标调用次数。
本发明实施例还提供了一种电子设备,图13为本发明实施例提供的一种电子设备的结构示意图,图13示出了适于用来实现本发明实施例实施方式的示例性电子设备的框图。图13显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图13所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器16,系统存储器28,连接不同系统组件(包括系统存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图13未显示,通常称为“硬盘驱动器”)。尽管图13中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM、DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。
处理器16通过运行存储在系统存储器28中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现上述任一方法实施例的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例的步骤。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)域连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方法实施例的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种接口调用方法,其特征在于,应用于第一服务器,所述第一服务器为预设时间段内未调用API的服务器;
所述方法包括:
将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统;
根据所述API目标调用次数,响应API调用请求。
2.根据权利要求1所述的方法,其特征在于,所述将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,包括:
接收更新指令,所述更新指令中包括从所述目标数据库中获取的所述API目标调用次数;
根据所述更新指令,将本地缓存的所述API调用次数更新为所述API目标调用次数。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述API目标调用次数,响应API调用请求,包括:
若所述API目标调用次数大于阈值次数,允许调用相应的API;
若所述API目标调用次数等于所述阈值次数,禁止调用相应的API,并返回API调用超量的提示信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述API目标调用次数,响应API调用请求之前,还包括:
根据所述API调用请求的时间,确定本地缓存未失效;
从本地缓存中获取所述API目标调用次数。
5.根据权利要求4所述的方法,其特征在于,所述允许调用相应的API之后,还包括:
更新本地缓存的所述API目标调用次数,以使所述目标数据库同步更新所述API目标调用次数。
6.一种接口调用方法,其特征在于,包括:
从目标数据库中获取第二服务器对应的API目标调用次数,所述第二服务器为集群系统中预设时间段内调用API的服务器;
将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求,所述第一服务器为所述预设时间段内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
7.根据权利要求6所述的方法,其特征在于,所述将所述API目标调用次数发送至第一服务器,包括:
根据所述API目标调用次数,生成更新指令,所述更新指令用于指示所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数;
将所述更新指令发送至所述第一服务器。
8.根据权利要求6或7所述的方法,其特征在于,所述从目标数据库中获取第二服务器对应的API目标调用次数,包括:
以预设周期从所述目标数据库中获取所述第二服务器对应的所述API目标调用次数。
9.一种接口调用装置,其特征在于,应用于第一服务器,所述第一服务器为预设时间段内未调用API的服务器;
所述接口调用装置包括:
更新模块,用于将本地缓存的API调用次数更新为第二服务器对应的API目标调用次数,所述API目标调用次数是从目标数据库中获取到的,所述第二服务器为所述预设时间段内调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统;
响应模块,用于根据所述API目标调用次数,响应API调用请求。
10.一种接口调用装置,其特征在于,包括:
获取模块,用于从目标数据库中获取第二服务器对应的API目标调用次数,所述第二服务器为集群系统中预设时间段内调用API的服务器;
发送模块,用于将所述API目标调用次数发送至第一服务器,以使所述第一服务器将本地缓存的API调用次数更新为所述API目标调用次数,并根据所述API目标调用次数响应API调用请求,所述第一服务器为所述预设时间段内未调用所述API的服务器,所述第一服务器和所述第二服务器属于同一集群系统。
11.一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一项,或者权利要求6-8中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项,或者权利要求6-8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195601.7A CN114679452A (zh) | 2022-03-01 | 2022-03-01 | 接口调用方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210195601.7A CN114679452A (zh) | 2022-03-01 | 2022-03-01 | 接口调用方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114679452A true CN114679452A (zh) | 2022-06-28 |
Family
ID=82072852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210195601.7A Pending CN114679452A (zh) | 2022-03-01 | 2022-03-01 | 接口调用方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114679452A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262821A (zh) * | 2015-10-29 | 2016-01-20 | 努比亚技术有限公司 | 接口管理装置和方法 |
CN111262795A (zh) * | 2020-01-08 | 2020-06-09 | 京东数字科技控股有限公司 | 基于服务接口的限流方法、装置、电子设备及存储介质 |
CN111988355A (zh) * | 2020-06-29 | 2020-11-24 | 汉海信息技术(上海)有限公司 | 限流方法、装置、服务器及服务器集群 |
CN112804160A (zh) * | 2021-01-26 | 2021-05-14 | 北京嘀嘀无限科技发展有限公司 | 基于应用程序的限流方法、装置、设备、介质及产品 |
CN113157738A (zh) * | 2021-04-15 | 2021-07-23 | 平安科技(深圳)有限公司 | 堆内数据缓存同步方法、装置、计算机设备及存储介质 |
-
2022
- 2022-03-01 CN CN202210195601.7A patent/CN114679452A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262821A (zh) * | 2015-10-29 | 2016-01-20 | 努比亚技术有限公司 | 接口管理装置和方法 |
CN111262795A (zh) * | 2020-01-08 | 2020-06-09 | 京东数字科技控股有限公司 | 基于服务接口的限流方法、装置、电子设备及存储介质 |
CN111988355A (zh) * | 2020-06-29 | 2020-11-24 | 汉海信息技术(上海)有限公司 | 限流方法、装置、服务器及服务器集群 |
CN112804160A (zh) * | 2021-01-26 | 2021-05-14 | 北京嘀嘀无限科技发展有限公司 | 基于应用程序的限流方法、装置、设备、介质及产品 |
CN113157738A (zh) * | 2021-04-15 | 2021-07-23 | 平安科技(深圳)有限公司 | 堆内数据缓存同步方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943594B (zh) | 数据获取方法和装置 | |
US20200328984A1 (en) | Method and apparatus for allocating resource | |
CN109388626B (zh) | 用于向业务分配编号的方法和装置 | |
CN109542361B (zh) | 一种分布式存储系统文件读取方法、系统及相关装置 | |
CN109933585B (zh) | 数据查询方法和数据查询系统 | |
CN108011949B (zh) | 用于获取数据的方法和装置 | |
CN107026879B (zh) | 一种数据缓存方法及后台应用系统 | |
CN112688983A (zh) | 代理权限管理装置、终端设备及存储介质 | |
US11934287B2 (en) | Method, electronic device and computer program product for processing data | |
CN111818194A (zh) | 基于域名的访问系统和方法 | |
CN113010224A (zh) | 前端微服务化方法、装置、计算机设备和存储介质 | |
EP3516570B1 (en) | Apparatus and method for tracking access permissions over multiple execution environments | |
US20110264627A1 (en) | System and method for providing automatic update | |
CN114625536A (zh) | 显存分配方法、装置、介质及电子设备 | |
CN109150927B (zh) | 用于文件存储系统的文件下发方法和装置 | |
CN114679452A (zh) | 接口调用方法、装置、电子设备和存储介质 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
CN111143418B (zh) | 一种数据库读取数据方法、装置、设备及存储介质 | |
US20140156908A1 (en) | Stale pointer detection with overlapping versioned memory | |
CN111680014B (zh) | 共享文件的获取方法、装置、电子设备及存储介质 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN109995855B (zh) | 一种数据获取方法、装置及终端 | |
CN116861397A (zh) | 一种请求处理方法、装置、电子设备及计算机可读介质 | |
CN109547552B (zh) | Api请求处理方法、装置、存储介质及电子设备 | |
US20220067196A1 (en) | A system and method for consent management |
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 |