本发明涉及服务共享,尤其涉及一种基于api网关的多服务共享方法。
背景技术:
1、api网关是一种集成了配置发布、环境管理、接入认证,用户鉴权、访问控制等功能的api管理和服务治理的工具,使用api网关托管api,即可高效,安全、低成本的管理服务。
2、目前存在的通过api网关只能通过固定的通信协议对服务请求进行解析,且无法在多个服务请求同时存在时为不同的服务请求分配合理的流量。
3、因此,本发明提供一种基于api网关的多服务共享方法。
技术实现思路
1、本发明提供一种基于api网关的多服务共享方法,用以解决基于api网关的多服务共享方法缺陷。
2、一方面,本发明提供一种基于api网关的多服务共享方法,包括:
3、步骤1:获取用户的服务请求以及所述服务请求对应的访问密钥,并基于访问密钥对所述服务请求进行认证授权,并将通过认证授权的服务请求传输至api网关;
4、步骤2:根据所述服务请求的请求特征确定对应的解析协议,并基于api网关对服务请求进行解析得到多个微服务信息;
5、步骤3:确定路由组件并获取路由配置信息,基于所述路由配置信息以及微服务信息生成路由信息;
6、步骤4:基于所述微服务信息确定分流方式对多个服务请求进行分流,并基于所述路由信息以及分流结果对所有微服务进行信息调用。
7、根据本发明提供的一种基于api网关的多服务共享方法,获取用户的服务请求以及所述服务请求对应的访问密钥,包括:
8、获取用户的服务请求,基于用户的服务请求确定用户的服务信息;
9、基于用户的服务信息进行密钥信息提取,得到所述服务请求对应的密钥信息;
10、根据所述密钥信息从访问密钥数据库中进行筛选,得到所述服务请求对应的访问密钥。
11、根据本发明提供的一种基于api网关的多服务共享方法,基于访问密钥对所述服务请求进行认证授权,并将通过认证授权的服务请求传输至api网关,包括:
12、获取服务请求对应的服务信息中的标识信息块,并基于所述访问密钥对标识信息块进行认证授权,并根据认证授权结果确定是否接受所述服务请求;
13、若认证授权结果为通过,则对相应的服务请求进行签名,并对签名结果进行合法性检查;
14、若签名结果合法则将签名后的服务请求传输至api网关;
15、否则,拒绝所述服务请求,并加入请求黑名单。
16、根据本发明提供的一种基于api网关的多服务共享方法,根据所述服务请求的请求特征确定对应的解析协议,包括:
17、基于服务请求数据库得到特征-解析协议映射表;
18、基于服务请求对应的服务信息进行请求特征提取,得到所述服务请求的请求特征;
19、将请求特征输入至特征-协议映射表中,得到所述服务请求的相应解析协议。
20、根据本发明提供的一种基于api网关的多服务共享方法,基于api网关对服务请求进行解析得到多个微服务信息,还包括:
21、将所述解析协议输入至api网关中得到多个解析策略,并基于签名结果确定服务请求的相应解析策略;
22、基于相应解析策略确定对应的服务解析器,并基于所述服务解析器对服务请求进行解析得到所述服务请求对应的多个微服务信息。
23、根据本发明提供的一种基于api网关的多服务共享方法,确定路由组件并获取路由配置信息,基于所述路由配置信息以及微服务信息生成路由信息,包括:
24、获取api网关的硬件配置信息以及插件信息,基于硬件配置信息以及插件信息确定路由组件,并基于所述路由组件确定所述api网关的路由配置信息;
25、获取所述api网关的发布情况;
26、若为已发布,则获取每个微服务信息的地址信息以及容量信息,并与对应的路由配置信息进行信息匹配,生成每个微服务信息的单独路由信息;
27、将所有单独路由信息按照相应路由配置信息的相对位置关系进行连接,得到对应服务请求的路由信息;
28、若为未发布,将请求结果设置为网络异常。
29、根据本发明提供的一种基于api网关的多服务共享方法,基于所述微服务信息确定分流方式对多个服务请求进行分流,包括:
30、获取所有服务请求的请求信息流,基于所述微服务信息的信息特征确定对应的分流方式,并基于所述分流方式确定每个服务请求的分流参数;
31、对每个服务请求进行实时监测,确定每个服务请求的当前服务进度,并基于所述当前服务进度确定每个服务请求的相应进度参数;
32、基于所述分流参数确定当前服务请求数量,并基于所述进度参数对所有的服务请求进行模拟,得到运行信息,并对所述运行信息进行特征提取得到所有服务请求的请求运行特征;
33、基于所述请求运行特征确定所有服务请求的请求信息流的运行平衡关系;
34、对所述运行平衡关系进行解析,得到每个服务请求运行的初始稳定概率,将所有的初始稳定概率进行融合,得到每个服务请求在当前运行状态下运行的稳定概率;
35、根据服务请求的请求类型,对所述稳定概率进行分类,得到同类型服务请求的目标稳定概率;
36、基于所述目标稳定概率确定同类型服务请求在同时刻下的请求运行数量,并基于所述请求运行数量确定请求信息流的分割参数;
37、基于所述分割参数对所述请求信息流进行分割,得到同类型服务请求的类型信息流;
38、获取同类型服务请求中每个服务请求的限流信息,并基于所述限流信息对相应服务类型的类型信息流进行二次分割;
39、基于二次分割结果得到每个服务请求的单独信息流;
40、其中,根据如下公式确定出单独信息流的容量,进而确定出单独信息流;
41、;其中,为第i个服务请求类型的类型信息流的容量,为所有服务请求的请求信息流的容量,为第i个服务请求类型的类型容量,为第i个服务请求类型的类型比重,[]为取整符号,为第i个服务请求类型的分割比例,为第i个服务请求类型中第j个服务请求的单独信息流的容量,为第i个服务请求类型中第j个服务请求的请求容量,为第i个服务请求类型中第j个服务请求的限流容量。
42、根据本发明提供的一种基于api网关的多服务共享方法,基于所述路由信息以及分流结果对所有微服务进行信息调用,包括:
43、获取所述api网关的所有微服务,并获取每个服务请求的相应路由信息,基于所述路由信息对所有微服务进行第一信息调用;
44、获取每个服务请求的分流信息,基于所述分流信息确定每个服务请求的分流结果,并基于所述分流结果对所有微服务进行第二信息调用;
45、基于第二信息调用结果对第一信息调用结果进行优化,并基于优化结果对所有微服务进行信息调用。
46、一方面,本发明提供一种基于api网关的多服务共享系统,包括:
47、认证授权模块:用于获取用户的服务请求以及所述服务请求对应的访问密钥,并基于访问密钥对所述服务请求进行认证授权,并将通过认证授权的服务请求传输至api网关;
48、请求解析模块:用于根据所述服务请求的请求特征确定对应的解析协议,并基于api网关对服务请求进行解析得到多个微服务信息;
49、路由生成模块:用于确定路由组件并获取路由配置信息,基于所述路由配置信息以及微服务信息生成路由信息;
50、信息调用模块:用于基于所述微服务信息确定分流方式对多个服务请求进行分流,并基于所述路由信息以及分流结果对所有微服务进行信息调用。
51、本发明提供的一种基于api网关的多服务共享方法,通过获取用户的服务请求以及对应的访问密钥并进行认证授权,将通过的服务请求传输至api网关,根据请求特征确定对应的解析协议进行解析得到多个微服务信息,通过路由组件的路由配置信息以及微服务信息生成路由信息,并确定分流方式对多个服务请求进行分流再进行信息调用,能够有效实现不同类型服务请求的多服务共享,保证了调用结果的准确性。
1.一种基于api网关的多服务共享方法,其特征在于,包括:
2.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,获取用户的服务请求以及所述服务请求对应的访问密钥,包括:
3.根据权利要求2所述的一种基于api网关的多服务共享方法,其特征在于,基于访问密钥对所述服务请求进行认证授权,并将通过认证授权的服务请求传输至api网关,包括:
4.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,根据所述服务请求的请求特征确定对应的解析协议,包括:
5.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,基于api网关对服务请求进行解析得到多个微服务信息,还包括:
6.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,确定路由组件并获取路由配置信息,基于所述路由配置信息以及微服务信息生成路由信息,包括:
7.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,基于所述微服务信息确定分流方式对多个服务请求进行分流,包括:
8.根据权利要求1所述的一种基于api网关的多服务共享方法,其特征在于,基于所述路由信息以及分流结果对所有微服务进行信息调用,还包括:
9.一种基于api网关的多服务共享系统,其特征在于,包括: