CN115426219A - 一种api网关自动化处理系统及方法 - Google Patents

一种api网关自动化处理系统及方法 Download PDF

Info

Publication number
CN115426219A
CN115426219A CN202210898093.9A CN202210898093A CN115426219A CN 115426219 A CN115426219 A CN 115426219A CN 202210898093 A CN202210898093 A CN 202210898093A CN 115426219 A CN115426219 A CN 115426219A
Authority
CN
China
Prior art keywords
api
gateway
current limiting
interface
configuration
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
Application number
CN202210898093.9A
Other languages
English (en)
Inventor
刘建雄
唐永武
徐浩
郭强
谢汶达
赵音龙
陈丰生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haina Zhiyuan Digital Technology Shanghai Co ltd
Original Assignee
Haina Zhiyuan Digital Technology Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haina Zhiyuan Digital Technology Shanghai Co ltd filed Critical Haina Zhiyuan Digital Technology Shanghai Co ltd
Priority to CN202210898093.9A priority Critical patent/CN115426219A/zh
Publication of CN115426219A publication Critical patent/CN115426219A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种API网关的自动化处理方法及系统,是一种自动化智能API网关方法及系统,其中包括:API(接口)路由分发模块:用于对每个微服务业务应用进行统一调度和管理,通过可视化页面进行动态配置路由分发情况,网关系统根据动态配置的规则自动化执行路由转发,来统一调度和管理各个微服务业务应用;API(接口)统一限流模块:用于对全公司业务系统通过统一网关系统进行接口或接口参数限流,通过可视化页面进行选择和设定限流规则,网关系统依据设定的限流配置执行Redis(缓存数据库)的Lua(语言脚本)脚本自动化进行API(接口)请求的流量限制,保证各个业务系统稳定运行,避免恶意请求流量、恶意攻击或者防止流量超出系统峰值情况。

Description

一种API网关自动化处理系统及方法
技术领域
本发明涉及微服务网关技术领域,具体涉及一种API网关自动化处理系统及方法。
背景技术
随着业务不断地复杂化,伴随着软件技术不断地发展和升级,需要搭建复杂且扩展性强应用系统往往会选择分布式微服务架构模式,分布式微服务带来了功能模块解耦,扩展性强等很多的便捷性,但基于原生微服务架构,往往需要更自动化、智能化方法去更好地贴合全局业务中通用事件。
发明内容
本发明提供一种API网关的自动化处理方法及系统,是一种自动化智能API(接口)网关方法及系统,其中包括:1、统一网关配置管理:由于业务应用系统的分散性,为了对每一个微服务应用进行统一的管理,实现了一种简单且有效的API路由管理方式;2、统一网关API(接口)限流管理:由于业务应用系统服务群体的多样性、复杂性,实现了一种灵活、高度自由可配置的限流方法及应用。
本发明的技术方案是:一种API网关自动化处理系统,API网关系统是整个微服务业务应用请求的统一入口,通过实现API(接口)信息限流、API地址路由断言和自定义过滤器,将符合条件的API请求分发到对应的业务服务上去;
所述API网关自动化处理系统包括:API(接口)路由统一分发模块、API(接口)接口统一限流模块;
所述API(接口)路由分发模块:用于对每个微服务业务应用进行统一调度和管理(包括:地址转发、断言、过滤功能),通过可视化页面进行动态配置路由分发情况,网关系统根据动态配置的规则自动化执行路由转发,来统一调度和管理各个微服务业务应用;
所述API接口统一限流模块:用于对全公司业务系统通过统一网关系统进行接口或接口参数限流,通过可视化页面进行选择和设定限流规则,网关系统依据设定的限流配置执行Redis(缓存数据库)的Lua(语言脚本)脚本自动化进行API(接口)请求的流量限制,保证各个业务系统稳定运行,避免恶意请求流量、恶意攻击,或者防止流量超出系统峰值情况。
本发明还提供一种API网关自动化处理方法,包括以下步骤:
步骤S1、可视化配置动态路由规则。
步骤S2、可视化配置API(接口)限流规则。
步骤S3、启动服务读取步骤S1中的路由规则配置及步骤S2中的API(接口)限流规则配置到内存并根据规则变动实时刷新。
步骤S4、对外统一由网关系统暴露URL(地址)接口。
步骤S5、当请求进入网关系统时,执行路由分发及断言处理、全局API(接口)限流控制以及重放攻击验证、自选路由过滤器链filters(过滤器装置);
步骤S6、符合路由规则的请求,分发给对应的业务系统进行逻辑处理;处理完成后将响应数据返回到网关系统,然后由网关系统将响应数据加工处理给外部调用方。
进一步的,所述步骤S1中,服务端提供了微服务网关路由的编号、名称、转发地址、优先级的基本配置、断言和过滤器的参数配置,还提供了过滤器请求URL(地址)的过滤配置,客户端实现可视化路由配置并提供刷新接口。
进一步的,所述步骤S2中,服务端提供了API(接口)限流配置的编号、名称、限流规则KEY和或作用级别和或作用接口地址参数配置,客户端实现可视化API(接口)限流配置并提供刷新接口。
进一步的,所述步骤S3包括以下分步骤:
S31、查询数据库获取动态配置数据并存入Redis(缓存数据库)。
S32、把路由配置信息通过RouteDefinitionWriter(路由执行类)写入到内存中并通过调用publishEvent(公共事件)方法通知服务刷新。
S33、同时开启一个扫描定时任务持续监听动态配置变化,如有变化,则会重复以上步骤刷新路由。
进一步的,所述步骤S4中,网关作为系统唯一开放的入口地址,所有请求均携带请求路径标识,通过网关的断言来进行路由匹配,匹配通过才进行路由转发。
进一步的,所述步骤S5包括以下分步骤:
S51、请求会经由全局过滤器进行数据处理,全局过滤器包括重放攻击检测、公共参数初始化、日志记录、黑白名单、路由转发、返回包装。
S52、全局限流:根据请求URL路径,匹配API(接口)限流规则配置,如果命中相关规则,则调用Redis(缓存数据库)已写好Lua(脚本语言)脚本进行限流检测;(比如:全局限制每个请求IP一段时间内调用次数限制、全局某个请求URL(接口)路径一段时间内调用次数限制)。
S53、再按优先级执行参数解密前置过滤器进行校验。
S54、参数属性限流:根据解析出来的参数属性信息,匹配API(接口)限流规则配置,如果命中相关规则,则调用Redis(缓存数据库)已写好Lua(脚本语言)脚本进行限流检测;(比如:每个机构一段时间内调用次数限制限制,每个用户一段时间内调用次数限制限)。
S55、再按优先级执行token(授权令牌)授权,数据权限和熔断前置过滤器进行校验;
S56、再进行路由转发到对应的业务系统中进行业务逻辑处理。
进一步的,所述步骤S6中,路由转发收到返回之后,如有配置后置过滤器,可对返回结果进行二次加工和包装,再返回给请求方,至此网关转发结束。
与现有技术相比,本发明具有以下有益效果:
1、本发明使用网关配置的方式来对系统微服务进行统一管理,统一处理包括但不限于黑白名单、限流、授权、数据权限、参数加解密、熔断一些请求所需的公共服务,使得其他服务能更好的专注于自身的功能和业务,达到了服务解耦的目的。
2、本发明在原有网关的基础上增加了可视化配置的写入和自动化的读取解析功能,应用系统变更不再需要对网关服务进行部署重启操作,大大的提高了网关服务的稳定性。
3、本发明还针对同一个服务调用的不同URL(地址),进行了可配置化的过滤器过滤操作,细化了配置的颗粒度,能更好兼容不同场景下的服务路由。
4、本发明使用全局过滤器,对整体网关增加了灵活、自动化可配置化、高效的业务限流装置,从全局到接口参数属性,都可以进行自动化限流处理,更好的保障和管理各个业务系统稳定性,也避免恶意请求流量、恶意攻击,或者防止流量超出系统峰值。
附图说明
图1所示为本发明所实施的流程基本示意图。
图2所示为本发明所实施的可视化配置图。
图3所示为本发明所实施的路由规则与限流规则属性图。
具体实施方式
下面结合说明书附图及本发明实施例,以详细说明本发明的技术方案。
一种API(接口)网关自动化处理系统,API网关系统是整个微服务业务应用请求的统一入口,通过实现API(接口)信息限流、API(接口)地址路由断言和自定义过滤器,将符合条件的API(接口)请求分发到对应的业务服务上去。
所述API(接口)网关自动化处理系统包括:API(接口)路由统一分发模块、API(接口)接口统一限流模块。
所述API(接口)路由分发模块:用于对每个微服务业务应用进行统一调度和管理(包括:地址转发、断言、过滤功能),通过可视化页面进行动态配置路由分发情况,网关系统根据动态配置的规则自动化执行路由转发,来统一调度和管理各个微服务业务应用。
所述API接口统一限流模块:用于对全公司业务系统通过统一网关系统进行接口或接口参数限流,通过可视化页面进行选择和设定限流规则,网关系统依据设定的限流配置执行Redis(缓存数据库)的Lua(执行脚本命令)脚本自动化进行API请求的流量限制,保证各个业务系统稳定运行,避免恶意请求流量、恶意攻击,或者防止流量超出系统峰值情况。
如图1、2、3所示,API(接口)网关自动化处理方法,包括以下步骤:
步骤S1、可视化配置动态路由规则;所述步骤S1中,服务端提供了微服务网关路由的编号、名称、转发地址、优先级的基本配置、断言和过滤器的参数配置,还提供了过滤器请求URL的过滤配置,客户端实现可视化路由配置并提供刷新接口。
步骤S2、可视化配置API(接口)接口限流规则;所述步骤S2中,服务端提供了API限流配置的编号、名称、限流规则KEY和或作用级别和或作用接口地址参数配置,客户端实现可视化API限流配置并提供刷新接口。
本发明实施例中,可视化配置动态路由规则是通过前端web页完成的,首先配置路由相关信息、API(接口)限流规则信息,同时可以在页面修改完成之后提交刷新操作。
步骤S3、启动服务读取步骤S1中的路由规则配置及步骤S2中的API接口限流规则配置到内存并根据规则变动实时刷新。所述步骤S3包括以下分步骤:
S31、查询数据库获取动态配置数据并存入Redis(缓存数据库)。
S32、把路由配置信息通过RouteDefinitionWriter(路由执行类)写入到内存中并通过调用publishEvent(公共事件方法)方法通知服务刷新。
S33、同时开启一个扫描定时任务持续监听动态配置变化,如有变化,则会重复以上步骤刷新路由。
步骤S4、对外统一由网关系统暴露URL(地址)接口;所述步骤S4中,网关作为系统唯一开放的入口地址,所有请求均携带请求路径标识,通过网关的断言来进行路由匹配,匹配通过才进行路由转发。
S3、请求方通过URL(地址)调用微服务网关系统,通过predicate(路由断言)事件,由内存中路由规则以正则表达式方式进行匹配。
步骤S5、当请求进入网关系统时,执行路由分发及断言处理、全局API限流控制以及重放攻击验证、自选路由过滤器链filters(过滤器)。所述步骤S5包括以下分步骤:
S51、请求会经由全局过滤器进行数据处理,全局过滤器包括重放攻击检测、公共参数初始化、日志记录、黑白名单、路由转发、返回包装。
S52、全局限流:根据请求URL路径,匹配API限流规则配置,如果命中相关规则,则调用Redis(缓存数据库)已写好Lua(脚本语言)脚本进行限流检测;(比如:全局限制每个请求IP一段时间内调用次数限制、全局某个请求URL路径一段时间内调用次数限制)。
S53、再按优先级执行参数解密前置过滤器进行校验。
S54、参数属性限流:根据解析出来的参数属性信息,匹配API限流规则配置,如果命中相关规则,则调用Redis(缓存数据库)已写好Lua(脚本语言)脚本进行限流检测;(比如:每个机构一段时间内调用次数限制限制,每个用户一段时间内调用次数限制限制)。
S55、再按优先级执行token(授权令牌)授权,数据权限和熔断前置过滤器进行校验。
S56、再进行路由转发到对应的业务系统中进行业务逻辑处理。
步骤S6、符合路由规则的请求,分发给对应的业务系统进行逻辑处理;处理完成后将响应数据返回到网关系统,然后由网关系统将响应数据加工处理给外部调用方。所述步骤S6中,路由转发收到返回之后,如有配置后置过滤器,可对返回结果进行二次加工和包装,再返回给请求方,至此网关转发结束。
其中:路由/API(接口)限流规则配置定时加载,用于配置变更后,系统自动读取变更后的配置信息加载到网关服务内存中,以实现信息的自动化更新。路由加载和转换,用于系统程序启动和定时任务加载时,把读取到的配置对象转换为Spring Cloud Gateway(微服务网关)所需的路由信息。路由解析和转发,包括用于对请求URL的解析过滤,对请求参数的解密封装,对请求本身的转发调用。API(接口)地址或API参数属性限流,包括用于对请求URL通过正则表达式进行匹配命中限流规则,对请求参数属性进行命中限流规则,通过执行redis(缓存数据库)的eval(函数)命令,可以运行已设定的lua(脚本语言)脚本。
本实施例中使用网关配置的方式来对系统微服务进行统一管理,统一处理包括但不限于黑白名单、限流、授权、数据权限、参数加解密、熔断一些请求所需的公共服务,使得其他服务能更好的专注于自身的功能和业务,达到了服务解耦的目的。在原有网关的基础上增加了可视化配置的写入和自动化的读取解析功能,应用系统变更不再需要对网关服务进行部署重启操作,大大的提高了网关服务的稳定性。还针对同一个服务调用的不同URL(地址),进行了可配置化的过滤器过滤操作,细化了配置的颗粒度,能更好兼容不同场景下的服务路由。使用全局过滤器,对整体网关增加了灵活、自动化可配置化、高效的业务限流装置,从全局到接口参数属性,都可以进行自动化限流处理,更好的保障和管理各个业务系统稳定性,也避免恶意请求流量、恶意攻击或者防止流量超出系统峰值。
以上所述仅是本发明的优选实施方式,为帮助读者理解本发明的原理,应当指出,对于本技术领域的技术人员来说,本发明所涉及的范围,并不仅限于此,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进,均应包含在本发明的保护范围之内。

Claims (8)

1.一种API网关自动化处理系统,其特征在于:API网关系统是整个微服务业务应用请求的统一入口,通过实现API信息限流、API地址路由断言和自定义过滤器,将符合条件的API请求分发到对应的业务服务上去;
所述API网关自动化处理系统包括:API路由统一分发模块、API接口统一限流模块;
所述API路由分发模块:用于对每个微服务业务应用进行统一调度和管理,通过可视化页面进行动态配置路由分发情况,网关系统根据动态配置的规则自动化执行路由转发,来统一调度和管理各个微服务业务应用;
所述API接口统一限流模块:用于对全公司业务系统通过统一网关系统进行接口或接口参数限流,通过可视化页面进行选择和设定限流规则,网关系统依据设定的限流配置执行Redis的Lua脚本自动化进行API请求的流量限制,保证各个业务系统稳定运行,避免恶意请求流量、恶意攻击,或者防止流量超出系统峰值情况。
2.一种API网关自动化处理方法,其特征在于:包括以下步骤:
步骤S1、可视化配置动态路由规则;
步骤S2、可视化配置API限流规则;
步骤S3、启动服务读取步骤S1中的路由规则配置及步骤S2中的API限流规则配置到内存并根据规则变动实时刷新;
步骤S4、对外统一由网关系统暴露URL接口;
步骤S5、当请求进入网关系统时,执行路由分发及断言处理、全局API限流控制以及重放攻击验证、自选路由过滤器链filters;
步骤S6、符合路由规则的请求,分发给对应的业务系统进行逻辑处理;处理完成后将响应数据返回到网关系统,然后由网关系统将响应数据加工处理给外部调用方。
3.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S1中,服务端提供了微服务网关路由的编号、名称、转发地址、优先级的基本配置、断言和过滤器的参数配置,还提供了过滤器请求URL的过滤配置,客户端实现可视化路由配置并提供刷新接口。
4.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S2中,服务端提供了API限流配置的编号、名称、限流规则KEY和或作用级别和或作用接口地址参数配置,客户端实现可视化API限流配置并提供刷新接口。
5.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S3包括以下分步骤:
S31、查询数据库获取动态配置数据并存入Redis缓存中;
S32、把路由配置信息通过RouteDefinitionWriter写入到内存中并通过调用publishEvent方法通知服务刷新;
S33、同时开启一个扫描定时任务持续监听动态配置变化,如有变化,则会重复以上步骤刷新路由。
6.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S4中,网关作为系统唯一开放的入口地址,所有请求均携带请求路径标识,通过网关的断言来进行路由匹配,匹配通过才进行路由转发。
7.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S5包括以下分步骤:
S51、请求会经由全局过滤器进行数据处理,全局过滤器包括重放攻击检测、公共参数初始化、日志记录、黑白名单、路由转发、返回包装;
S52、全局限流:根据请求URL路径,匹配API限流规则配置,如果命中相关规则,则调用Redis已写好Lua脚本进行限流检测;
S53、再按优先级执行参数解密前置过滤器进行校验;
S54、参数属性限流:根据解析出来的参数属性信息,匹配API限流规则配置,如果命中相关规则,则调用Redis已写好Lua脚本进行限流检测;
S55、再按优先级执行token授权、数据权限和熔断前置过滤器进行校验;
S56、再进行路由转发到对应的业务系统中进行业务逻辑处理。
8.根据权利要求2所述的一种API网关自动化处理方法,其特征在于:所述步骤S6中,路由转发收到返回之后,如有配置后置过滤器,可对返回结果进行二次加工和包装,再返回给请求方,至此网关转发结束。
CN202210898093.9A 2022-07-28 2022-07-28 一种api网关自动化处理系统及方法 Pending CN115426219A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210898093.9A CN115426219A (zh) 2022-07-28 2022-07-28 一种api网关自动化处理系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210898093.9A CN115426219A (zh) 2022-07-28 2022-07-28 一种api网关自动化处理系统及方法

Publications (1)

Publication Number Publication Date
CN115426219A true CN115426219A (zh) 2022-12-02

Family

ID=84197369

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210898093.9A Pending CN115426219A (zh) 2022-07-28 2022-07-28 一种api网关自动化处理系统及方法

Country Status (1)

Country Link
CN (1) CN115426219A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719582A (zh) * 2023-08-07 2023-09-08 北京市大数据中心 一种高并发系统的前端限流方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719582A (zh) * 2023-08-07 2023-09-08 北京市大数据中心 一种高并发系统的前端限流方法
CN116719582B (zh) * 2023-08-07 2023-11-03 北京市大数据中心 一种高并发系统的前端限流方法

Similar Documents

Publication Publication Date Title
Paniagua et al. Industrial frameworks for internet of things: A survey
WO2021218328A1 (zh) 多租户访问服务实现方法、装置、设备及存储介质
CN110191063B (zh) 服务请求的处理方法、装置、设备及存储介质
US9344371B1 (en) Dynamic throttling systems and services
US8375360B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
US20130019018A1 (en) Optimized service integration
US8291077B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
JP5349603B2 (ja) 権限管理に基づく端末装置管理のための方法および装置
US7836483B2 (en) Automatic derivation of access control policies from a choreography
US9294867B2 (en) Provision of services over a common delivery platform such as a mobile telephony network
KR102417742B1 (ko) Api 데이터 수집시스템 및 그에 관한 방법
EP3488584A1 (en) Usage tracking in hybrid cloud computing systems
CN105260292A (zh) 一种日志记录方法、装置及系统
US9641540B2 (en) User interface driven translation, comparison, unification, and deployment of device neutral network security policies
CN115309566A (zh) 一种服务接口的动态管理方法及系统
CN115426219A (zh) 一种api网关自动化处理系统及方法
US20060161616A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
CN113315750A (zh) 一种Kafka消息发布方法、装置及存储介质
CN115934202A (zh) 一种数据管理方法、系统、数据服务网关及存储介质
US7065565B2 (en) System and method for policy-enabled, contract-based management of network operational support systems
CN115378645A (zh) 一种基于电力营销管理系统统一认证的验证方法及系统
Kalubowila et al. Optimization of microservices security
WO2004097556A2 (en) Hierarchical service management system
EP1681832A1 (en) Provision of services over a common delivery platform such as a mobile telephony network
CN113259323B (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