一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种API网关的数据处理方法、API网关及储存介质与流程

2022-04-27 03:30:26 来源:中国专利 TAG:

一种api网关的数据处理方法、api网关及储存介质
技术领域
1.本技术涉及网络技术领域,尤其涉及一种api网关的数据处理方法、api网关及储存介质。


背景技术:

2.两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。而如果两个系统中间互相通信,在系统之间加上一个中介者协助应用程序接口(application programming interface,api)的调用,这个中介者就是api网关,api网关可以放在两个系统之间,同时也可以放在客户端与服务端之间,api网关具有负载均衡、路由选择、流量控制、统一鉴权及熔断降级等功能。
3.现有技术中,开放平台配置的数据存于数据库中,在api网关接收到用户的业务请求后,api网关会对应一个业务请求访问一次数据库,调用数据库中的配置数据用来判断该请求是否合法,并查询该业务请求对应的业务接口,api网关将合法的业务请求发送给对应的业务服务器,然后将业务服务器产生的响应转发给用户。
4.但是,每次访问数据库都需要进行数据库事务处理、数据库io处理、网络交互发起时间及数据网络传输的步骤,当用户的业务请求的数量很大时,访问数据库会在这些步骤上花费较长的时间,导致api网关响应及处理速度变得缓慢,从而降低了api网关的性能。


技术实现要素:

5.为了解决上述技术问题,本技术提供了一种api网关的数据处理方法、api网关及储存介质,使得api网关的响应及处理速度得到提高。
6.本技术第一方面提供了一种api网关的数据处理方法,包括:
7.api网关从数据库中获取开发平台的配置数据,并将所述配置数据存储到本地内存中,所述配置数据用于所述api网关对收到的业务请求进行身份验证;
8.当所述api网关接收到所述用户的业务请求时,所述api网关根据所述本地内存中存储的所述配置数据对所述业务请求进行身份验证;
9.当所述身份验证通过时,所述api网关将所述业务请求转发至目标业务服务器,以使得所述目标业务服务器根据所述业务请求产生响应信息;
10.所述api网关接收所述响应消息并将所述响应信息转发给所述用户。
11.可选的,在所述api网关从数据库中获取开发平台的配置数据之前,所述数据处理方法还包括:
12.所述api网关接收开源日志系统发送的更新通知,所述更新通知为所述开放平台将所述配置数据更新为更新数据时产生的通知;
13.所述api网关从数据库中获取开发平台的配置数据,并将所述配置数据存储到本地内存中包括:
14.所述api网关根据所述更新通知从所述数据库中获取所述更新数据,并将所述更
新数据替换所述本地内存中原有的配置数据。
15.可选的,在所述api网关接收所述响应消息并将所述响应信息转发给所述用户之后,所述数据处理方法还包括:
16.api网关通过所述开源日志系统记录所述api网关的接口调用记录,所述接口调用记录用于所述开发平台生成统计报表。
17.可选的,在所述api网关从数据库中获取开放平台的配置数据之前,所述数据处理方法还包括:
18.所述api网关接收所述开发平台的api请求,所述api请求用于请求所述api网关获取所述开放平台的配置数据。
19.可选的,所述根据所述本地内存中存储的所述配置数据对所述业务请求进行身份验证包括:
20.当所述身份验证不通过时,api网关向所述用户反馈身份验证失败的通知。
21.可选的,所述根据所述本地内存中存储的所述配置数据对所述业务请求进行身份验证包括:
22.api网关获取所述配置数据中的权限信息,并根据所述权限信息对所述业务请求进行身份验证。
23.可选的,所述api网关根据所述本地内存中存储的所述配置数据对所述业务请求进行身份验证包括:
24.所述api网关根据所述配置数据对所述业务请求进行限流及黑名单过滤。
25.本技术第二方面提供了一种api网关,包括:
26.获取单元,用于从数据库中获取开发平台的配置数据,并将所述配置数据存储到本地内存中,所述配置数据用于所述api网关对收到的业务请求进行身份验证;
27.验证单元,用于当所述api网关接收到所述用户的业务请求时,根据所述本地内存中存储的所述配置数据对所述业务请求进行身份验证;
28.转发单元,用于当所述身份验证通过时,将所述业务请求转发至目标业务服务器,以使得所述目标业务服务器根据所述业务请求产生响应信息;
29.第一接收单元,用于接收所述响应消息并将所述响应信息转发给所述用户。
30.可选的,所述api网关还包括:
31.第二接收单元,用于接收开源日志系统发送的更新通知;
32.所述获取单元包括:
33.替换模块,用于根据所述更新通知从所述数据库中获取所述更新数据,并将所述更新数据替换所述本地内存中原有的配置数据。
34.可选的,所述api网关还包括:
35.记录单元,用于通过所述开源日志系统记录所述api网关的接口调用记录,所述接口调用记录用于所述开发平台生成统计报表。
36.可选的,所述api网关还包括:
37.第三接收单元,用于接收所述开发平台的api请求,所述api请求用于请求所述api网关获取所述开放平台的配置数据。
38.可选的,所述验证单元包括:
39.反馈模块,用于当所述身份验证不通过时,向所述用户反馈身份验证失败的通知。
40.可选的,所述验证单元包括:
41.获取模块,用于获取所述配置数据中的权限信息,并根据所述权限信息对所述业务请求进行身份验证。
42.可选的,所述验证单元包括:
43.处理模块,用于根据所述配置数据对所述业务请求进行限流及黑名单过滤。
44.本技术第三方面提供了一种api网关,包括:
45.中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
46.所述存储器为短暂存储存储器或持久存储存储器;
47.所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面以及第一方面的可选方式中的任意一种所述的方式。
48.本技术第四方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面以及第一方面的可选方式中的任意一种所述的方式。
49.从以上技术方案可以看出,本技术具有以下效果:
50.首先api网关从数据库中获取开发平台的配置数据,并存储在本地内存中,该配置数据用于api网关对业务请求进行身份验证,当api网关接收到用户的业务请求时,api网关从本地内存中调用配置数据对该用户的业务请求进行身份验证,当身份验证通过后,api网关再将该业务请求转发给目标业务服务器,此时目标业务服务器会生成响应信息并发送给api网关,最后,api网关将该目标业务服务器生成的响应信息转发给用户,这样,api网关直接在对用户的业务请求进行处理时,直接从本地内存中调用数据,不需要调用数据库,使得api网关的响应速度以及处理速度得到提高,提高了api网关的性能;另外,在数据库发生错误不能正常使用时,api网关也能根据本地内存中的配置数据进行正常运行,具有较强的健壮性。
附图说明
51.为了更清楚地说明本技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1为本技术一种api网关的数据处理方法一个实施例的一个示意图;
53.图2为本技术一种api网关的数据处理方法另一个实施例的一个示意图;
54.图3为本技术一种api网关一个实施例的一个示意图;
55.图4为本技术一种api网关另一个实施例的一个示意图;
56.图5为本技术一种api网关另一个实施例的一个示意图。
具体实施方式
57.本技术提供了一种api网的数据处理方法、api网关及储存介质,用于提高api网关的处理速度及响应速度,提高api网关性能。
58.请参阅图1,图1是本技术提供的一种api网关的数据处理方法一个实施例的一个
示意图,该数据处理方法包括:
59.101、api网关从数据库中获取开发平台的配置数据,并将配置数据存储到本地内存中,配置数据用于api网关对收到的业务请求进行身份验证。
60.配置数据是开发人员在开发平台配置的数据,该配置数据包括权限信息,路由信息等,在开发人员配置好配置数据之后,该配置数据存储在数据库中,数据库中存储的数据包括但不限于该配置数据;配置数据存储在数据库之后,api网关会访问数据库,在数据库中获取该配置数据,然后将该配置数据存储到api网关的本地内存中。
61.需要说明的是,数据库可以是redis,也可以是memcache、cassandra,还可以是mongodb,具体的,还可以是其他数据库,在实际使用中,使用的数据库不做限定。以redis为例,开放平台上的配置数据配置好后,会存入redis数据库,api网关则会访问redis,并在redis中获取该配置数据存储到api网关的本地内存中。
62.102、当api网关接收到用户的业务请求时,api网关根据本地内存中存储的配置数据对业务请求进行身份验证。
63.一般的,多个api网关会组成网关集群,在接收用户业务请求时,网关集群会将该业务请求分配到指定的api网关中进行处理,此时api网关便接收到用户的业务请求。
64.api网关处理的业务请求是大量的,而其中存在一些不合法的请求,这些不合法的请求会盗取一些内部信息,所以,需要对用户的业务请求进行身份验证,验证用户是否拥有访问业务服务器的权利。本实施例中,配置数据中包括有用户的权限信息,在api网关接收到业务请求后,会获取该业务请求的权限,然后调用本地内存中的配置数据,当该业务请求的权限在该配置数据中时,表示该用户的业务请求是合法的,此时,用户的身份验证通过。
65.可选的,本实施例中,api网关除了对业务请求进行身份验证外,还会进行黑名单拦截、限流等操作,黑名单拦截为api网关不对黑名单的业务请求进行操作,实际的,若api网关判断某个业务请求对应的用户是黑名单,api网关直接将还业务请求拦截,不会转发该业务请求到目标业务服务器中。限流是限制一个时间窗口内请求的数量,在实际中,api网关接受的业务请求量超过了最大处理能力后,api网关就会出现问题,不能在正常提供服务,所以需要进行限流操作。
66.可选的,ai网关对业务请求进行验证的过程中,还包括确定该业务请求对应的目标业务服务器的目标接口,实际的,业务请求中含有目标接口编码,目标接口编码对应着目标业务服务器,在api网关接收到用户的业务请求时,api网关会提取该目标接口编码,当该业务请求身份验证通过后,api网关则将该业务请求转发到该目标接口编码对应的目标业务服务器中。
67.本实施例中,当api网关对用户的业务请求的验证通过后,说明该业务请求是合法的,此时,api网关执行步骤103,而当该业务请求验证不通过时,说明该用户没有访问目标业务服务器的权限,此时api网关结束该验证流程。
68.103、api网关将业务请求转发至目标业务服务器,以使得目标业务服务器根据业务请求产生响应信息。
69.在api网关实际运行中,一个业务请求需要多个业务服务器的参与,在api网关确定目标接口编码时,会根据目标接口编码的数量,将该业务请求转发至每一个目标接口编码对应的业务服务器中,这个根据目标接口编码转发业务请求的过程称为路由,一般的,一
个目标接口编码对应一个业务服务器,例如,用户需要获取a的商品信息时,将请求发送给api网关,而a的商品信息包括价格服务、库存服务及商品信息服务,所以,api网关在该请求中确定的目标接口编码为3个,对应的,在转发该请求时,会将该请求转发至价格服务器、库存服务器以及商品信息服务器中。
70.本实施例中,在用户业务请求的身份验证通过后,api网关根据目标接口编码,将该业务请求转发到该目标接口编码对应的目标业务服务器,此时,目标业务服务器收到该业务请求后,会产生响应信息,然后将该响应信息发送给api网关。
71.104、api网关接收响应消息并将响应信息转发给用户。
72.api网关在接收到目标也服务器发送的响应信息之后,根据该响应信息对应的业务请求,找到目标用户,并将该响应信息发送给用户,实际的,根据前述步骤的说明,用户与api网关与业务服务器三者之间具体工作如下:用户通过终端向api网关发送业务请求,接着在身份验证通过后,api网关将该业务请求转发给目标业务服务器,目标业务服务器根据该业务请求产生响应信息,并将该响应信息发送给api网关,最后,ai网关则将该响应信息转发给用户终端。
73.本实施例中,api网关首先从数据库中获取由开放平台配置的配置数据,并将该配置数据存储到api网关的本地内存中,然后,当api网关接收到用户的业务请求后,api网关则会在本地内存中调用配置数据,使用该配置数据对该业务请求进行身份验证,在验证的过程中,api网关还会获取该业务请求中的目标接口编码,当身份验证通过后,api网关则将该业务请求转发到目标接口编码对应的目标业务服务器中,而目标业务服务器收到业务请求后会产生响应信息,此时,目标业务服务器会向api网关发送该响应信息,最后,api网关则将该响应信息转发给用户,这样,在对业务请求进行身份验证等操作时,直接从本地内存中调用数据,不需要调用其他的数据库,而且多个api网关组成的网关集群统一分配业务请求,使得业务请求不会堆积在单一api网关中,使得api网关的响应速度以及处理速度得到提高,提高了api网关的性能;其次,由于是调用到本地内存,在数据库发生错误不能正常使用时,也能保证api网关的正常运行,具有较强的健壮性。
74.请参阅图2,图2是本技术提供的一种api网关的数据处理方法另一个实施例的一个示意图,该数据处理方法包括:
75.201、api网关接收开发平台的api请求,api请求用于请求api网关获取开放平台的配置数据。
76.开放平台由开发人员维护,在开发平台建立初期,配置数据仅是新数据,称为起始配置数据,当开发人员将起始配置数据配置完成,此时,开发平台则会向api网关发送api请求,该api请求用于请求api网关获取开放平台的起始配置数据,也就是开发平台通知api网关,起始配置数据已经配置好,需要api网关来储存起始配置数据的数据库中第一次获取该起始配置数据。
77.202、api网关接收开源日志系统发送的更新通知,更新通知为开放平台将配置数据更新为更新数据时产生的通知。
78.开源日志系统能够进行消息通知以及日志存储,在本实施例中,数据库中的数据发生改变,便可以通过该开源日志系统向api网关发送数据改变的通知。
79.配置数据不是一成不变的,在实际中,配置数据会存在更改或者新增的情况,所
以,开放平台存储在数据库中的配置数据会被更新,此时,对应的也需要对api网关的本地内存中存储的配置数据进行更新,实际的,在数据库中的配置数据更新之后,数据库会通知api网关配置数据已经更新,需要重新获取数据库中更新后的配置数据。
80.本实施例中,api网关接收从开源日日志系统发送的更新通知,该更新通知是开放平台将配置数据更新成为更新数据时产生的通知,实际的,开发人员更新配置数据,并存储到数据库中,此时数据库原有的配置数据变为更新数据,而数据库则会通过开源日志系统向api网关发送数据已经更新的通知,
81.可以理解的是,本实施例中的开源日志系统可以是kafka,实际的,开源日志系统还可以是scribe、chukwa、flume等,具体使用的开源日志系统此处不做限定。
82.203、api网关根据更新通知从数据库中获取更新数据,并将更新数据替换本地内存中原有的配置数据。
83.在api网关接收到开源日志系统发送的更新通知之后,api网关便重新访问数据库,从数据库中重新获取更新数据,获取到更新数据之后,api网关则将该更新数据替换本地内存中原有的配置数据。
84.可以理解的是,api网关获取更新数据可以是仅获取发生改变的数据,然后将该发生改变的数据替换本地内存中的配置数据,也可以是获取全部的配置数据,包括更新的与未更新的,然后进行替换。例如,在第一种情况下,api网关仅获取发生改变的数据,原有配置数据为1、2、3以及4,更新之后变为1、2.5、3、4以及5,这里发生改变的数据为2变成2.5,新增5,此时,api网关获取2.5以及5,然后再本地内存中用2.5替换原有配置数据中的2,并且新增数据5;在第二中情况下,api网关获取全部的配置数据,原有配置数据为1、2、3以及4,更新之后变为1、2.5、3、4以及5,此时api网关获取包括更新与未更新的数据1、2.5、3、4以及5,然后再本地内存中替换原有的配置数据1、2、3以及4,最后从在本地内存中的数据为1、2.5、3、4以及5。
85.204、当api网关接收到用户的业务请求时,api网关根据本地内存中存储的配置数据对业务请求进行身份验证。
86.205、api网关将业务请求转发至目标业务服务器,以使得目标业务服务器根据业务请求产生响应信息。
87.本实施例中的步骤204至205与前述图1实施例中的步骤102至103类似,此处不再赘述。
88.需要说明的是,在步骤204中,api网关对业务请求进行身份验证的另以一种可实现方式中,用户的业务请求没有通过api网关的身份验证,此时,执行步骤206。
89.206、api网关向用户反馈身份验证失败的通知。
90.用户的业务请求首先会到达api网关,当身份验证通过后,该业务请求才会到达对应的目标业务服务器中,当用户的业务请求没有api网关的身份验证时,则表明该用户在配置数据中没有访问的权限,此时,api网关会向用户直接反馈身份验证失败的通知,该业务请求不会转发到目标业务服务器上。
91.本实施例中,api网关在用户业务请求的身份验证不通过后,直接向用户反馈身份验证不通过的通知,这样,用户便可以及时的了解访问进程,减少用户等待的时间,提高了用户体验。
92.207、api网关接收响应消息并将响应信息转发给用户。
93.本实施例中的步骤207与前述图1实施例中的步骤104类似,此处不再赘述。
94.208、api网关通过开源日志系统记录api网关的接口调用记录,接口调用记录用于开发平台生成统计报表。
95.用户的业务请求的接收、转发,以及数据库的调用等操作,api网关接口均被调用,api调用中经常需要对一些错误请求进行问题定位与排查,而良好的日志记录会大大提高我们排查问题的效率与准确性。
96.本实施例中,api网关通过开源日志系统记录api网关的接口调用记录,开发平台能够根据该接口调用记录生成统计报表,统计报表上记录着api网关接口的调用情况,开发人员能够查看该统计报表,了解api网关接口的调用情况,根据该调用情况,对错误的业务请求进行问题的定位以及排查。
97.请参阅图3,图3是本技术提供的一种api网关一个实施例的一个示意图,该api网关包括:
98.获取单元301,用于从数据库中获取开发平台的配置数据,并将配置数据存储到本地内存中,配置数据用于api网关对收到的业务请求进行身份验证;
99.验证单元302,用于当api网关接收到用户的业务请求时,根据本地内存中存储的配置数据对业务请求进行身份验证;
100.转发单元303,用于当身份验证通过时,将业务请求转发至目标业务服务器,以使得目标业务服务器根据业务请求产生响应信息;
101.第一接收单元304,用于接收响应消息并将响应信息转发给用户。
102.本实施例中,获取单元301从数据库中获取开放平台的配置数据,并将配置数据存储到本地内存中,该配置数据用于api网关对收到的业务请求进行身份验证,然后验证单元302在api网关接收到用户的业务请求时,根据本地内存中的配置数据对该业务请求进行身份验证,当验证通过时,验证单元303将业务请求转发至目标业务服务器,以使得目标业务服务器根据业务请求产生响应消息,最后第一接收单元304则会接收目标业务服务器发送的响应消息,并将该响应消息转发给用户。这样,api网关在接收到用户的业务请求后,从本地内存中调用配置数据进行身份验证,不从数据库中调用配置数据,所以,提高了api网关的响应速度以及处理速度,提高了api网关性能。
103.请参阅图4,图4是本技术提供的一种api网关另一个实施例的一个示意图,该api网关包括:
104.第三接收单元401,用于接收开发平台的api请求,api请求用于请求api网关获取开放平台的配置数据;
105.第二接收单元402,用于接收开源日志系统发送的更新通知;
106.获取单元403,用于从数据库中获取开发平台的配置数据,并将配置数据存储到本地内存中,配置数据用于api网关对收到的业务请求进行身份验证;
107.获取单元403包括:
108.替换模块4031,用于根据更新通知从数据库中获取更新数据,并将更新数据替换本地内存中原有的配置数据;
109.验证单元404,用于当api网关接收到用户的业务请求时,根据本地内存中存储的
配置数据对业务请求进行身份验证;
110.验证单元404包括:
111.反馈模块4041,用于当身份验证不通过时,向用户反馈身份验证失败的通知;
112.获取模块4042,用于获取配置数据中的权限信息,并根据权限信息对业务请求进行身份验证;
113.处理模块4043,用于根据配置数据对业务请求进行限流及黑名单过滤;
114.转发单元405,用于当身份验证通过时,将业务请求转发至目标业务服务器,以使得目标业务服务器根据业务请求产生响应信息;
115.第一接收单元406,用于接收响应消息并将响应信息转发给用户;
116.记录单元407,用于通过开源日志系统记录api网关的接口调用记录,接口调用记录用于开发平台生成统计报表。
117.请参阅图5,图5是本技术提供的一种api网关另一个实施例的一个示意图,该api网关包括:
118.中央处理器502,存储器501,输入输出接口503,有线或无线网络接口504以及电源505;
119.存储器501为短暂存储存储器或持久存储存储器;
120.中央处理器502配置为与存储器501通信,并执行存储器501中的指令操作以执行前述图1至图2所示实施例中的步骤。
121.本技术实施例提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行前述图1至图2所示实施例中的步骤。
122.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
123.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
124.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
125.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
126.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献