CN111092811A - 一种请求处理方法、装置及api网关和可读存储介质 - Google Patents
一种请求处理方法、装置及api网关和可读存储介质 Download PDFInfo
- Publication number
- CN111092811A CN111092811A CN201811245281.1A CN201811245281A CN111092811A CN 111092811 A CN111092811 A CN 111092811A CN 201811245281 A CN201811245281 A CN 201811245281A CN 111092811 A CN111092811 A CN 111092811A
- Authority
- CN
- China
- Prior art keywords
- api
- configuration information
- updating
- response message
- service 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 84
- 230000004044 response Effects 0.000 claims description 118
- 238000004891 communication Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 33
- 230000007246 mechanism Effects 0.000 claims description 29
- 238000012795 verification Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/60—Scheduling 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)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种请求处理方法、装置及API网关和可读存储介质,其中,该方法应用于应用程序编程接口API网关,包括:接收服务请求,服务请求指示待访问的API;从API网关的内部缓存中获取数据更新信息;确定数据更新信息是否达到预设更新条件;如果未达到预设更新条件,则从内部缓存中获取与待访问的API对应的API配置信息,并根据API配置信息处理服务请求。通过本发明实施例提供的请求处理方法、装置及API网关和可读存储介质,能够提高API网关的稳定性。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种请求处理方法、装置及API网关和可读存储介质。
背景技术
应用程序编程接口(Application Programming Interface,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配置信息更新至所述内部缓存中,并更新所述数据更新信息。
可选的,接收的所述服务请求的数量为多个;
所述装置还包括:
加锁模块,用于对所述外部缓存增加加锁机制;
验证模块,用于针对各个服务请求,判断该服务请求是否通过所述加锁机制中的解锁验证;
所述第一发送模块,具体用于在该服务请求通过所述解锁验证时,向所述外部缓存发送第一访问请求。
可选的,所述数据更新信息包括:最新更新时间和更新周期;所述预设更新条件为:当前时间与所述最新更新时间的时间差不小于所述更新周期;
所述判断模块,包括:
获取子模块,用于获取当前时间;
比较子模块,用于将当前时间与所述最新更新时间的时间差与所述更新周期进行比较;
第一确定子模块,用于如果所述时间差小于所述更新周期,则确定不满足所述预设更新条件;
第二确定子模块,用于如果所述时间差不小于所述更新周期,则确定满足所述预设更新条件。
第三方面,本发明实施例提供了一种应用程序编程接口API网关,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法步骤。
本发明实施例提供的一种请求处理方法、装置及API网关和可读存储介质,可以应用于API网关。具体地,接收服务请求,服务请求指示待访问的API;从API网关的内部缓存中获取数据更新信息;确定数据更新信息是否达到预设更新条件;如果未达到预设更新条件,则从内部缓存中获取与待访问的API对应的API配置信息,并根据API配置信息处理服务请求。本发明实施例中,在API网关处理请求的过程中,增加API网关自身的内部缓存机制,即在待获取待访问的API对应的API配置信息过程中,在API网关自身的内部缓存中数据无需更新时,从API网关自身的内部缓存中获取该API配置信息,并根据该API配置信息处理服务请求。从API网关自身的内部缓存中获取该API配置信息,能够避免在API网关外部的外部缓存或数据库出现问题时,无法正常从外部缓存或数据库中获取API配置信息,进而无法正常处理服务请求的问题,如此能够提高API网关的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为API网关提供服务的示意图;
图2为本发明实施例提供的请求处理方法的一种流程图;
图3为本发明实施例中判断是否达到预设更新条件的流程图;
图4为本发明实施例提供的请求处理方法的另一种流程图;
图5为本发明实施例提供的请求处理方法的另一种流程图;
图6为本发明实施例提供的请求处理方法的另一种流程图;
图7为本发明实施例提供的请求处理装置的一种结构示意图;
图8为本发明实施例提供的请求处理装置的另一种结构示意图;
图9为本发明实施例提供的请求处理装置的另一种结构示意图;
图10为本发明实施例提供的请求处理装置的另一种结构示意图;
图11为本发明实施例提供的请求处理装置的另一种结构示意图;
图12为本发明实施例提供的API网关的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
API网关,是对外开放的API服务统一的出入口。API可以包括预先定义的函数,应用将自身的服务封装成API,并通过API网关开放给用户调用。
如图1所示。客户端,如移动终端、个人计算机(Personal Computer,PC)端或应用程序(Application,APP)等,待请求服务时,向API网关发送服务请求;API网关再将服务请求转发至对应的服务,如服务1、服务2或者服务3,或者服务请求需要多个服务协同合作,则可以将服务请求同时转发至多个服务。且因为在实际应用过程中,应用将服务的功能或者实现的逻辑封装成API,即可以将服务请求转发至对应的API以实现对服务请求的处理。
客户端通过互联网或者专网等访问API网关,由API网关统一接收服务请求后,通过一系列模块定位具体处理的服务,并将其转发至目标服务处理,简单理解,也即实现路由,路由是API网关很核心的功能,实现根据服务请求,锁定目标服务,并将服务请求转发至目标服务,即目标服务对应的目标API。
在确定目标API的过程中,需要首先获取访问策略、API相关信息等,然后根据该访问策略以及API相关信息进行转发。如API的名称、API的版本号、API的功能以及API所在的设备的互联网协议(Internet Protocol,IP)地址、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网关,
本发明实施例提供了一种请求处理方法,如图2所示,可以包括:
S201,接收服务请求。
服务请求可以指示待访问的API。
具体地,可以包括待访问API的API名称,或者待实现的功能描述等信息。
服务请求可以是客户端用于请求服务的请求。具体地,客户端待请求服务时,向API网关发送服务请求,如移动终端、PC端等通过专门的APP向API网关发送服务请求。如此,API网关可以接收服务请求。
当接收到服务请求后,解析该服务请求,即可得到该服务请求中包括的待实现的功能描述、待访问的API的名称等信息,通过分析服务请求中包括的内容,即可得到服务请求待访问的API。如服务请求中包括API的名称,就可直接确定待访问的API为服务请求中包括的API名称对应的API;如服务请求中包括服务请求待实现的功描述能,则可确定能够实现该功能描述对应功能的API为待访问的API。
S202,从API网关的内部缓存中获取数据更新信息。
S203,确定数据更新信息是否达到预设更新条件。
其中,预设更新条件为更新API网关自身的内部缓存中数据的条件。一种可实现方式中,也可以理解为,即如果达到该预设更新条件,内部缓存中的数据需要更新,而如果未达到该预设更新条件,内部缓存中的数据无需更新。
具体地,一种可实现方式中,可以通过判断API网关自身的内部缓存中数据更新信息的容量是否达到预设容量阈值,如10GB,等等。另一种可实现方式中,可以通过判断是否达到预设更新时间,如判断当前时间与上一次更新时间是否达到预设时间阈值,如5分钟等等。本发明实施例不对判断是否达到预设更新条件的方式作限制。
本发明一种可选的实施例中,数据更新信息包括:最新更新时间和更新周期;预设更新条件为:当前时间与最新更新时间的时间差不小于更新周期。
如图3所示,步骤S203:确定数据更新信息是否达到预设更新条件,可以包括:
S2031,获取当前时间。
S2032,将当前时间与最新更新时间的时间差与更新周期进行比较。
更新周期可以根据实际情况确定,如API配置信息变动比较大,则可以设置间隔比较短的更新周期,如1分钟;如API配置信息变动比较小,则可以设置间隔比较长的更新周期,如5分钟。
S2033,如果时间差小于更新周期,则确定不满足预设更新条件。
如更新周期为5分钟,而当前时间与该最新更新时间的时间差为3分钟,则可以确定时间差小于更新周期,则可以确定不满足预设更新条件。
S2034,如果时间差不小于更新周期,则确定满足预设更新条件。
如更新周期为5分钟,而当前时间与该最新更新时间的时间差为6分钟,则可以确定时间差大于更新周期,则可以确定满足预设更新条件。
S204,如果未达到预设更新条件,则从内部缓存中获取与待访问的API对应的API配置信息,并根据API配置信息处理服务请求。
本发明实施例中,可以预先将各个API的API配置信息备份至API网关的内部缓存中,使得在需要获取API配置信息时,可以直接从内部缓存中获取待访问的API对应的API配置信息。
不满足预设更新条件,即可以理解为内部缓存中的数据无需更新,也可以理解为内部缓存中包括所有待需的API配置信息。此时,可从该内部缓存中获取到服务请求中指示的待访问的API对应的API配置信息。
API配置信息也可以理解为用于指示API网关访问的访问策略。具体地,获取到API配置信息后,即可根据该API配置信息处理服务请求。简单理解,即API网关通过API配置信息,“定位”出为服务请求提供服务的API,并将该服务请求转发至“定位”出的该API,以使通过API对该服务请求作出响应,进而将API对服务请求作出的响应,返回至发送服务请求的客户端,如移动终端,PC端等等,即实现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网关的稳定性。
在上述图2所示实施例的基础上,本发明还提供了一种可选的实施例,如图4所示,可以包括:
S201,接收服务请求。
S202,从API网关的内部缓存中获取数据更新信息。
S203,确定所数据更新信息是否达到预设更新条件。
S204,如果未达到预设更新条件时,则从内部缓存中获取与待访问的API对应的API配置信息,并根据API配置信息处理服务请求。
本发明实施例中步骤S201至步骤S204在上述图2所示实施例中已进行了详细说明,这里就不再赘述。
S205,向与API网关通信连接的外部缓存发送第一访问请求。
如果达到预设更新条件,则向与API网关通信连接的外部缓存发送第一访问请求。
API网关外部的外部缓存可以是位于API外部的服务器的缓存等。
如果达到预设更新条件,可以理解为API网关的内部缓存中的数据有可能需要更新,当然也有可能即使达到预设更新条件,也没有数据需要更新至内部缓存中。
一般情况下,API的API配置信息可以保存在外部缓存中,因此,在达到预设更新条件时,可以通过访问API网关的外部缓存,以期望可以获取最新的API配置信息。
具体地,可以通过在向该外部缓存发送服务请求后,判断是否能正常接收到外部缓存的响应消息,如判断是否能够在预设时间范围内接收到外部缓存的响应消息,并根据不同的情况进行不同的处理。
如API网关无法正常接收到外部缓存的响应消息,可以理解为API网关与外部缓存的连接出现问题,此时,可以从内部缓存中获取API配置信息;如在API网关能够正常接收到API的响应消息时,则可以继续判断响应消息中是否包括待获取的API配置信息,若该响应消息中包括该待获取的API配置信息,则直接根据获取到的该API配置信息处理服务请求;若该响应消息中不包括该待获取的API配置信息,如返回的响应消息包括“NULL”,则进一步可以访问保存各个API的API配置信息的数据库。
如图5所示,在步骤S205:向与API网关通信连接的外部缓存发送第一访问请求之后,还可以包括:
S206,如果未在第一预设时间范围内接收到外部缓存反馈的第一响应消息,则从内部缓存中获取与待访问的API对应的API配置信息,并根据该API配置信息处理服务请求。
S207,如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息包括与待访问的API对应的API配置信息,则根据该API配置信息处理服务请求。
另外,本发明实施例中,如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息包括与待访问的API对应的API配置信息,则将API配置信息更新至内部缓存中,并更新数据更新信息。
S208,如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息不包括与待访问的API对应的API配置信息,则向与API网关通信连接的数据库发送第二访问请求。
一般情况下,为了能够保证API网关可以及时地获取到所需的API配置信息,这里所说的,判断API网关是否能在预设时间范围内,接收到外部缓存的响应消息中的预设时间范围一般比较小,以实现能够在外部缓存无法正常响应时,可以及时地进行其他处理,如切换至保存各个API的API配置信息的数据库中获取所需的API配置信息,或者直接从内部缓存中获取API配置信息,以保证API网关能够及时地获取到API配置信息,并根据该API配置信息完成逻辑处理,进而实现对服务请求的响应。
在上述图5所示实施例的基础上,本发明实施例还提供了一种可选的实施例,如图6所示,在步骤S208:向与API网关通信连接的数据库发送第二访问请求之后,还可以包括:
S209,如果在第二预设时间范围内接收到数据库反馈的第二响应消息,且第二响应消息包括与待访问的API对应的API配置信息,则根据该API配置信息处理服务请求。
另外,本发明实施例中,如果在第二预设时间范围内接收到数据库反馈的第二响应消息,且第二响应消息包括与待访问的API对应的API配置信息时,则将API配置信息更新至内部缓存中,并更新数据更新信息。
S210,如果未在第二预设时间范围内接收到数据库反馈的第二响应消息,则从内部缓存中获取与待访问的API对应的API配置信息,并根据该API配置信息处理服务请求。
即在API网关网关访问外部的数据库过程中,根据不同的情况采取不同的处理。具体地,根据数据库是否能够正常反馈响应消息,从不同位置处获取待需的API配置信息。
本发明实施例中,API网关增加内存缓存机制,内部缓存的数据永不过期,只会定时更新。当需要更新内存数据时才访问外部缓存服务,当外部缓存服务无数据时,才访问数据库。网络失败或者外部缓存、数据库服务无返回、返回为空时,则继续使用内存缓存数据,进行API网关自身业务逻辑的处理。
根据不同的情况从内部缓存、外部缓存以及数据库中获取所需的信息,且本发明实施例中优先从内部缓存中获取待需的信息,只有在外部缓存和数据库能够与API正常连接时才从外部缓存和数据库中获取待需的信息,如此避免API网关依赖的外部缓存或数据库出现问题时,对API网关的处理逻辑造成影响。且不会对已有的客户和业务造成任何的流量损失;同时,当API网关依赖的数据库或缓存出现短时间的网络抖动时无需人工介入解决服务异常。能够提高API网关的稳定性。
本发明一种可选的实施例中,在多个服务请求同时访问外部缓存时,可以通过进行全局加锁,降低并发的访问量,避免高并发的访问对外部缓存造成的访问压力。具体地,当接收的服务请求的数量为多个,则在向与API网关通信连接的外部缓存发送第一访问请求之前,该方法还可以包括:
对外部缓存增加加锁机制;针对各个服务请求,判断该服务请求是否通过加锁机制中的解锁验证。
即API网关增加全局锁,通过加锁机制,也可以理解为全局加锁机制,即可以理解为,只有通过加锁机制中的解锁验证的服务请求才能访问外部缓存。
具体地,API网关向外部缓存发送包括服务请求信息的验证消息,以判断是否能够通过解锁验证,如在预设的时间范围内接收到外部缓存反馈的验证通过消息时,则可以确定该服务请求通过该解锁验证;而未在预设的时间范围内接收到外部缓存反馈的验证通过消息时,则可以确定该服务请求未通过解锁验证。
或者也可以向外部缓存发送获取访问密码的访问消息,若在预设的时间范围内可以接收到外部缓存反馈的包括访问密码的反馈消息,则可以确定该服务请求通过该解锁验证;而在预设的时间范围内未接收到外部缓存反馈的包括访问密码的反馈消息,则可以确定该服务请求未通过解锁验证。
向与API网关通信连接的外部缓存发送第一访问请求,包括:
在该服务请求通过解锁验证时,向外部缓存发送第一访问请求。如此,API可以在接收到外部缓存针对该服务请求的验证通过消息时,访问外部缓存;或者可以在接收到外部缓存反馈的包括访问密码的反馈消息时,通过该访问密码访问外部缓存。
如此使得,只有通过外部缓存验证的服务请求,才能通过API网关访问外部缓存,使的高并发的访问变成了单次访问。能够减轻多个服务请求,如热点数据同时访问外部缓存时对外部缓存的压力,避免多个服务请求通过API网关访问外部缓存时造成外部缓存的瘫痪等隐患。
同理,可以在多个服务请求同时访问数据库时,可以对访问数据库的服务请求进行同外部缓存的类似的全局加锁,降低并发的访问量,避免高并发的访问对数据库造成的访问压力。
本发明实施例中,针对热点的数据访问API网关不会对数据库或缓存造成几何倍的访问压力,进一步提高API网关高稳定性。且数据库或缓存服务无需扩容,降低API逻辑处理过程中的复杂度。
本发明实施例提供了一种请求处理装置,如图7所示,应用于API网关,包括:
接收模块701,用于接收服务请求,服务请求指示待访问的API;
第一获取模块702,用于从API网关的内部缓存中获取数据更新信息;
判断模块703,用于确定数据更新信息是否达到预设更新条件;
第二获取模块704,用于如果未达到预设更新条件,则从内部缓存中获取与待访问的API对应的API配置信息;
第一处理模块705,用于根据API配置信息处理服务请求。
本发明实施例中,在API网关处理请求的过程中,增加API网关自身的内部缓存机制,即在待获取待访问的API对应的API配置信息过程中,在API网关自身的内部缓存中数据无需更新时,从API网关自身的内部缓存中获取该API配置信息,并根据该API配置信息处理服务请求。从API网关自身的内部缓存中获取该API配置信息,能够避免在API网关外部的外部缓存或数据库出现问题时,无法正常从外部缓存或数据库中获取API配置信息,进而无法正常处理服务请求的问题,如此能够提高API网关的稳定性。
可选的,如图8所示,该装置还可以包括:
第一发送模块706,用于如果达到预设更新条件,则向与API网关通信连接的外部缓存发送第一访问请求。
可选的,如图9所示,该装置还可以包括:
第三获取模块707,用于如果未在第一预设时间范围内接收到外部缓存反馈的第一响应消息,则从内部缓存中获取与待访问的API对应的API配置信息;
第二处理模块708,用于根据API配置信息处理服务请求;
第三处理模块709,用于如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息包括与待访问的API对应的API配置信息,则根据API配置信息处理服务请求;
第二发送模块710,用于如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息不包括与待访问的API对应的API配置信息,则向与API网关通信连接的数据库发送第二访问请求。
可选的,如图10所示,该装置还可以包括:
第四处理模块711,用于如果在第二预设时间范围内接收到数据库反馈的第二响应消息,且第二响应消息包括与待访问的API对应的API配置信息,则根据API配置信息处理服务请求;
第四获取模块712,用于如果未在第二预设时间范围内接收到数据库反馈的第二响应消息,则从内部缓存中获取与待访问的API对应的API配置信息;
第五处理模块713,用于根据API配置信息处理服务请求。
可选的,该装置还可以包括:
第一更新模块,用于如果在第一预设时间范围内接收到外部缓存反馈的第一响应消息,且第一响应消息包括与待访问的API对应的API配置信息,则将API配置信息更新至内部缓存中,并更新数据更新信息。
可选的,该装置还包括:
第二更新模块,用于如果在第二预设时间范围内接收到数据库反馈的第二响应消息,且第二响应消息包括与待访问的API对应的API配置信息,则将API配置信息更新至内部缓存中,并更新数据更新信息。
可选的,接收的服务请求的数量为多个;
该装置还包括:
加锁模块,用于对外部缓存增加加锁机制;
验证模块,用于针对各个服务请求,判断该服务请求是否通过加锁机制中的解锁验证;
第一发送模块,具体用于在该服务请求通过解锁验证时,向外部缓存发送第一访问请求。
可选的,数据更新信息包括:最新更新时间和更新周期;预设更新条件为:当前时间与最新更新时间的时间差不小于更新周期;
如图11所示,判断模块703,可以包括:
获取子模块7031,用于获取当前时间;
比较子模块7032,用于将当前时间与最新更新时间的时间差与更新周期进行比较;
第一确定子模块7033,用于如果时间差小于更新周期,则确定不满足预设更新条件;
第二确定子模块7034,用于如果时间差不小于更新周期,则确定满足预设更新条件。
需要说明的是,本发明实施例提供的请求处理装置是应用上述请求处理方法的装置,则上述请求处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例还提供了一种API网关,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信。
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现如下方法步骤:
接收服务请求,服务请求指示待访问的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网关提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述API网关与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现如下方法步骤:
接收服务请求,服务请求指示待访问的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网关处理请求的过程中,增加API网关自身的内部缓存机制,即在待获取待访问的API对应的API配置信息过程中,在API网关自身的内部缓存中数据无需更新时,从API网关自身的内部缓存中获取该API配置信息,并根据该API配置信息处理服务请求。从API网关自身的内部缓存中获取该API配置信息,能够避免在API网关外部的外部缓存或数据库出现问题时,无法正常从外部缓存或数据库中获取API配置信息,进而无法正常处理服务请求的问题,如此能够提高API网关的稳定性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、API网关、计算机可读存储介质及应用程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (18)
1.一种请求处理方法,其特征在于,应用于应用程序编程接口API网关,包括:
接收服务请求,所述服务请求指示待访问的API;
从所述API网关的内部缓存中获取数据更新信息;
确定所述数据更新信息是否达到预设更新条件;
如果未达到所述预设更新条件,则从所述内部缓存中获取与所述待访问的API对应的API配置信息,并根据所述API配置信息处理所述服务请求。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果达到所述预设更新条件,则向与所述API网关通信连接的外部缓存发送第一访问请求。
3.根据权利要求2所述的方法,其特征在于,在向与所述API网关通信连接的外部缓存发送第一访问请求之后,所述方法还包括:
如果未在第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,则从所述内部缓存中获取与所述待访问的API对应的API配置信息,并根据所述API配置信息处理所述服务请求;
如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息包括与所述待访问的API对应的API配置信息,则根据所述API配置信息处理所述服务请求;
如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息不包括与所述待访问的API对应的API配置信息,则向与所述API网关通信连接的数据库发送第二访问请求。
4.根据权利要求3所述的方法,其特征在于,在向与所述API网关通信连接的数据库发送第二访问请求之后,所述方法还包括:
如果在第二预设时间范围内接收到所述数据库反馈的第二响应消息,且所述第二响应消息包括与所述待访问的API对应的API配置信息,则根据所述API配置信息处理所述服务请求;
如果未在所述第二预设时间范围内接收到所述数据库反馈的第二响应消息,则从所述内部缓存中获取与所述待访问的API对应的API配置信息,并根据所述API配置信息处理所述服务请求。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息包括与所述待访问的API对应的API配置信息,则将所述API配置信息更新至所述内部缓存中,并更新所述数据更新信息。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果在所述第二预设时间范围内接收到所述数据库反馈的第二响应消息,且所述第二响应消息包括与所述待访问的API对应的API配置信息,则将所述API配置信息更新至所述内部缓存中,并更新所述数据更新信息。
7.根据权利要求2所述的方法,其特征在于,当接收的所述服务请求的数量为多个,则在向与所述API网关通信连接的外部缓存发送第一访问请求之前,所述方法还包括:
对所述外部缓存增加加锁机制;
针对各个服务请求,判断该服务请求是否通过所述加锁机制中的解锁验证;
所述向与所述API网关通信连接的外部缓存发送第一访问请求,包括:
在该服务请求通过所述解锁验证时,向所述外部缓存发送第一访问请求。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述数据更新信息包括:最新更新时间和更新周期;所述预设更新条件为:当前时间与所述最新更新时间的时间差不小于所述更新周期;
所述确定数据更新信息是否达到预设更新条件,包括:
获取当前时间;
将当前时间与所述最新更新时间的时间差与所述更新周期进行比较;
如果所述时间差小于所述更新周期,则确定不满足所述预设更新条件;
如果所述时间差不小于所述更新周期,则确定满足所述预设更新条件。
9.一种请求处理装置,其特征在于,应用于应用程序编程接口API网关,包括:
接收模块,用于接收服务请求,所述服务请求指示待访问的API;
第一获取模块,用于从所述API网关的内部缓存中获取数据更新信息;
判断模块,用于确定所述数据更新信息是否达到预设更新条件;
第二获取模块,用于如果未达到所述预设更新条件,则从所述内部缓存中获取与所述待访问的API对应的API配置信息;
第一处理模块,用于根据所述API配置信息处理所述服务请求。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一发送模块,用于如果达到所述预设更新条件,则向与所述API网关通信连接的外部缓存发送第一访问请求。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于如果未在第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,则从所述内部缓存中获取与所述待访问的API对应的API配置信息;
第二处理模块,用于根据所述API配置信息处理所述服务请求;
第三处理模块,用于如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息包括与所述待访问的API对应的API配置信息,则根据所述API配置信息处理所述服务请求;
第二发送模块,用于如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息不包括与所述待访问的API对应的API配置信息,则向与所述API网关通信连接的数据库发送第二访问请求。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第四处理模块,用于如果在第二预设时间范围内接收到所述数据库反馈的第二响应消息,且所述第二响应消息包括与所述待访问的API对应的API配置信息,则根据所述API配置信息处理所述服务请求;
第四获取模块,用于如果未在所述第二预设时间范围内接收到所述数据库反馈的第二响应消息,则从所述内部缓存中获取与所述待访问的API对应的API配置信息;
第五处理模块,用于根据所述API配置信息处理所述服务请求。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第一更新模块,用于如果在所述第一预设时间范围内接收到所述外部缓存反馈的第一响应消息,且所述第一响应消息包括与所述待访问的API对应的API配置信息,则将所述API配置信息更新至所述内部缓存中,并更新所述数据更新信息。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二更新模块,用于如果在所述第二预设时间范围内接收到所述数据库反馈的第二响应消息,且所述第二响应消息包括与所述待访问的API对应的API配置信息,则将所述API配置信息更新至所述内部缓存中,并更新所述数据更新信息。
15.根据权利要求10所述的装置,其特征在于,接收的所述服务请求的数量为多个;
所述装置还包括:
加锁模块,用于对所述外部缓存增加加锁机制;
验证模块,用于针对各个服务请求,判断该服务请求是否通过所述加锁机制中的解锁验证;
所述第一发送模块,具体用于在该服务请求通过所述解锁验证时,向所述外部缓存发送第一访问请求。
16.根据权利要求9至15任一项所述的装置,其特征在于,所述数据更新信息包括:最新更新时间和更新周期;所述预设更新条件为:当前时间与所述最新更新时间的时间差不小于所述更新周期;
所述判断模块,包括:
获取子模块,用于获取当前时间;
比较子模块,用于将当前时间与所述最新更新时间的时间差与所述更新周期进行比较;
第一确定子模块,用于如果所述时间差小于所述更新周期,则确定不满足所述预设更新条件;
第二确定子模块,用于如果所述时间差不小于所述更新周期,则确定满足所述预设更新条件。
17.一种应用程序编程接口API网关,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811245281.1A CN111092811B (zh) | 2018-10-24 | 2018-10-24 | 一种请求处理方法、装置及api网关和可读存储介质 |
PCT/CN2019/112225 WO2020083189A1 (zh) | 2018-10-24 | 2019-10-21 | 一种请求处理方法、装置及api网关和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811245281.1A CN111092811B (zh) | 2018-10-24 | 2018-10-24 | 一种请求处理方法、装置及api网关和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111092811A true CN111092811A (zh) | 2020-05-01 |
CN111092811B CN111092811B (zh) | 2021-11-26 |
Family
ID=70331295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811245281.1A Active CN111092811B (zh) | 2018-10-24 | 2018-10-24 | 一种请求处理方法、装置及api网关和可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111092811B (zh) |
WO (1) | WO2020083189A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579684A (zh) * | 2020-12-31 | 2021-03-30 | 浙江百应科技有限公司 | 一种api接口管理系统及管理方法 |
CN112636986A (zh) * | 2020-12-29 | 2021-04-09 | 苏州思必驰信息科技有限公司 | 网关插件更新方法及装置 |
CN113765701A (zh) * | 2021-08-02 | 2021-12-07 | 中企云链(北京)金融信息服务有限公司 | 一种基于永久内存缓存的网关控制方法 |
CN113765695A (zh) * | 2021-03-26 | 2021-12-07 | 北京京东拓先科技有限公司 | 一种网关管理方法、装置、设备及计算机可读存储介质 |
CN113938527A (zh) * | 2021-08-31 | 2022-01-14 | 阿里巴巴(中国)有限公司 | Api网关的扩展处理方法、计算设备及存储介质 |
CN113965421A (zh) * | 2021-12-23 | 2022-01-21 | 北京微步在线科技有限公司 | 应用程序接口的获取方法、装置和分析方法、装置 |
CN114338502A (zh) * | 2021-12-28 | 2022-04-12 | 数字广东网络建设有限公司 | 网关数据处理方法、装置、设备和存储介质 |
CN114650283A (zh) * | 2020-12-21 | 2022-06-21 | 京东科技控股股份有限公司 | 动态切换云存储服务的方法、装置、电子设备及存储介质 |
CN116208513A (zh) * | 2021-11-30 | 2023-06-02 | 中移动信息技术有限公司 | 网关的健康度预测方法及装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381346A (zh) * | 2020-10-13 | 2021-02-19 | 广州赛意信息科技股份有限公司 | 一种基于api网关的产品工艺配方参数下发校验方法及系统 |
CN112256733A (zh) * | 2020-10-19 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、电子设备及计算机可读存储介质 |
CN112699061B (zh) * | 2020-12-07 | 2022-08-26 | 海光信息技术股份有限公司 | 实现PCIe设备的缓存一致性的系统、方法和介质 |
CN113448962B (zh) * | 2021-06-02 | 2022-10-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN113220669B (zh) * | 2021-06-09 | 2024-04-16 | 京东科技控股股份有限公司 | 业务数据的处理方法、装置及电子设备 |
CN113505017A (zh) * | 2021-07-16 | 2021-10-15 | 中国建设银行股份有限公司 | 一种问题排查方法、装置、存储介质和设备 |
CN113778492B (zh) * | 2021-09-17 | 2023-11-10 | 中国移动通信集团陕西有限公司 | 能力api的发布方法、装置、设备及存储介质 |
CN114374603A (zh) * | 2022-01-12 | 2022-04-19 | 上海商米科技集团股份有限公司 | 基于api网关的数据处理方法及api网关 |
CN115002225A (zh) * | 2022-05-07 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 一种请求处理方法、装置及可读介质 |
CN115103008B (zh) * | 2022-06-13 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种服务请求转发系统 |
CN115514633A (zh) * | 2022-08-29 | 2022-12-23 | 中国电信股份有限公司 | Api网关的动态配置方法、装置,以及,电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027605A (zh) * | 2016-04-30 | 2016-10-12 | 北京智驾互联信息服务有限公司 | 车辆状态数据处理装置 |
WO2017204950A1 (en) * | 2016-05-27 | 2017-11-30 | Intuit Inc. | Optimizing read and write operations in object schema-based application programming interfaces (apis) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533944B (zh) * | 2016-12-29 | 2020-04-28 | 金蝶软件(中国)有限公司 | 一种分布式api网关、管理方法及管理系统 |
CN107205015A (zh) * | 2017-04-14 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 开放接口的实现方法和装置 |
US9936005B1 (en) * | 2017-07-28 | 2018-04-03 | Kong Inc. | Systems and methods for distributed API gateways |
CN108055322B (zh) * | 2017-12-12 | 2020-12-25 | 青岛海石信息技术有限公司 | 请求消息处理方法及装置 |
CN108429645A (zh) * | 2018-03-05 | 2018-08-21 | 深圳乐信软件技术有限公司 | 一种api网关的配置方法、装置、存储介质及api网关 |
-
2018
- 2018-10-24 CN CN201811245281.1A patent/CN111092811B/zh active Active
-
2019
- 2019-10-21 WO PCT/CN2019/112225 patent/WO2020083189A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027605A (zh) * | 2016-04-30 | 2016-10-12 | 北京智驾互联信息服务有限公司 | 车辆状态数据处理装置 |
WO2017204950A1 (en) * | 2016-05-27 | 2017-11-30 | Intuit Inc. | Optimizing read and write operations in object schema-based application programming interfaces (apis) |
Non-Patent Citations (1)
Title |
---|
郭小乐: ""基于SOA的网关缓存服务发现与编排机制的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114650283A (zh) * | 2020-12-21 | 2022-06-21 | 京东科技控股股份有限公司 | 动态切换云存储服务的方法、装置、电子设备及存储介质 |
CN112636986A (zh) * | 2020-12-29 | 2021-04-09 | 苏州思必驰信息科技有限公司 | 网关插件更新方法及装置 |
CN112579684A (zh) * | 2020-12-31 | 2021-03-30 | 浙江百应科技有限公司 | 一种api接口管理系统及管理方法 |
CN113765695A (zh) * | 2021-03-26 | 2021-12-07 | 北京京东拓先科技有限公司 | 一种网关管理方法、装置、设备及计算机可读存储介质 |
CN113765701A (zh) * | 2021-08-02 | 2021-12-07 | 中企云链(北京)金融信息服务有限公司 | 一种基于永久内存缓存的网关控制方法 |
CN113765701B (zh) * | 2021-08-02 | 2024-02-20 | 中企云链(北京)金融信息服务有限公司 | 一种基于永久内存缓存的网关控制方法 |
CN113938527A (zh) * | 2021-08-31 | 2022-01-14 | 阿里巴巴(中国)有限公司 | Api网关的扩展处理方法、计算设备及存储介质 |
CN113938527B (zh) * | 2021-08-31 | 2024-04-26 | 阿里巴巴(中国)有限公司 | Api网关的扩展处理方法、计算设备及存储介质 |
CN116208513A (zh) * | 2021-11-30 | 2023-06-02 | 中移动信息技术有限公司 | 网关的健康度预测方法及装置 |
CN113965421A (zh) * | 2021-12-23 | 2022-01-21 | 北京微步在线科技有限公司 | 应用程序接口的获取方法、装置和分析方法、装置 |
CN113965421B (zh) * | 2021-12-23 | 2022-03-18 | 北京微步在线科技有限公司 | 应用程序接口的获取方法、装置和分析方法、装置 |
CN114338502A (zh) * | 2021-12-28 | 2022-04-12 | 数字广东网络建设有限公司 | 网关数据处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020083189A1 (zh) | 2020-04-30 |
CN111092811B (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111092811B (zh) | 一种请求处理方法、装置及api网关和可读存储介质 | |
US9473537B2 (en) | Cloud based mobile device management systems and methods | |
CN110213223B (zh) | 业务管理方法、装置、系统、计算机设备和存储介质 | |
US10476833B2 (en) | Warning method and apparatus, and processing server | |
EP3170091B1 (en) | Method and server of remote information query | |
US8250628B2 (en) | Dynamic augmentation, reduction, and/or replacement of security information by evaluating logical expressions | |
US20180332057A1 (en) | Cyberattack behavior detection method and apparatus | |
CN110765484B (zh) | 一种征信数据处理方法及电子设备 | |
CN113381979B (zh) | 一种访问请求代理方法及代理服务器 | |
CN112738100B (zh) | 数据访问的鉴权方法、装置、鉴权设备和鉴权系统 | |
CN112953745B (zh) | 服务调用方法、系统、计算机设备和存储介质 | |
US9635017B2 (en) | Computer network security management system and method | |
CN111400777B (zh) | 一种网络存储系统、用户认证方法、装置及设备 | |
CN110830280A (zh) | 一种微服务网关装置及方法、电子设备 | |
CN111177776A (zh) | 多租户数据隔离方法与系统 | |
CN113489689A (zh) | 访问请求的鉴权方法及装置、存储介质、电子设备 | |
CN113067803A (zh) | 一种资源隔离系统、请求处理方法及请求处理装置 | |
US11228491B1 (en) | System and method for distributed cluster configuration monitoring and management | |
EP3607765B1 (fr) | Procédé d'obtention d'une commande relative à un profil d'accès à un réseau | |
CN111211902A (zh) | 一种基于企业浏览器实现的数字签名方法和装置 | |
CN115297085B (zh) | 一种域名解析的更新方法、装置、电子设备及存储介质 | |
CN113590180B (zh) | 一种检测策略生成方法及装置 | |
CN112217770B (zh) | 一种安全检测方法、装置、计算机设备及存储介质 | |
CN108306859B (zh) | 限制服务器访问量的方法、设备及计算机可读存储介质 | |
US20180270324A1 (en) | Methods and devices for processing resource operation request |
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 |