一种基于Spring Cloud Gateway实现的动态路由编排方法及系统

文档序号:1965916 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 一种基于Spring Cloud Gateway实现的动态路由编排方法及系统 (Dynamic routing arrangement method and system based on Spring Cloud Gateway ) 是由 李飞 范文斌 李凌悦 王涛 杨洪伟 于 2021-08-11 设计创作,主要内容包括:本发明公开了一种基于Spring Cloud Gateway实现的动态路由编排方法及系统,属于服务网关技术领域,包括以下步骤:S1:注册动态路由规则信息;S2:启动加载监听动态路由配置;S3:请求调用网关;S4:匹配路由过滤控制策略;S5:执行动态路由编排流程;S6:请求返回。本发明通过实现Spring Cloud Gateway动态路由的编排,完成了一个服务网关的从无到有,服务提供者无需关心动态路由编排细节,只须按要求配置对应的策略信息即可生成一个服务网关,服务网关统一调用地址前缀,依靠全局过滤器集中管控所有网关,根据私有过滤器隔离管控单独网关,调用过程中日志分阶段异步保存,请求返回结果准确可靠,网关性能高可用。(The invention discloses a dynamic routing arranging method and a dynamic routing arranging system based on Spring Cloud Gateway, which belong to the technical field of service gateways and comprise the following steps: s1: registering dynamic routing rule information; s2: starting loading and monitoring dynamic route configuration; s3: requesting to call a gateway; s4: matching a route filtering control strategy; s5: executing a dynamic routing arrangement process; s6: and returning the request. The invention completes the existence of a service Gateway by realizing the arrangement of the Spring Cloud Gateway dynamic route, a service provider does not need to care about the arrangement details of the dynamic route, only needs to configure corresponding strategy information according to requirements to generate the service Gateway, the service Gateway uniformly calls the address prefix, intensively controls all gateways by depending on a global filter, isolates and controls the single Gateway according to a private filter, logs are asynchronously stored in stages in the calling process, the request return result is accurate and reliable, and the Gateway performance is high and usable.)

一种基于Spring Cloud Gateway实现的动态路由编排方法及 系统

技术领域

本发明涉及服务网关技术领域,具体涉及一种基于Spring Cloud Gateway实现的动态路由编排方法及系统。

背景技术

在IT领域,最近微服务架构盛行,一个系统往往由数个系统组成,站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生,从而把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用,为了能对每一个服务都进行统一管理,网关应运而生,其目的是为提供一种简单而有效的统一的API路由管理方式。

在网关的应用过程中,Spring Cloud Gateway较其他网关不仅提供了统一访问地址,还可运用filter策略,基于Netty的响应式开发模式实现更加高效。但现有的SpringCloud Gateway网关调用一般都是针对单一资源,且返回数据无法再次处理,为此,提出一种基于Spring Cloud Gateway实现的动态路由编排方法及系统。

发明内容

本发明所要解决的技术问题在于:如何基于Spring Cloud Gateway实现匹配路由过滤策略,执行动态路由编排功能,丰富了网关在管控上的维度,解决了Spring CloudGateway网关调用一般都是针对单一资源,且返回数据无法再次处理的问题,提供了一种基于Spring Cloud Gateway实现的动态路由编排方法。

本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:

S1:注册动态路由规则信息

服务提供者提供所需注册的业务系统接口,完善基本服务信息,编排资源,确定动态路由流向及编排处理要求,并添加必要的过滤到动态路由中,作为服务网关的限制策略;

S2:启动加载监听动态路由配置

启动Spring Cloud Gateway系统,监听动态路由的配置,将规则信息加载到Spring Cloud Gateway路由中,并持续监听,当路由信息发生改变,实时刷新到路由中;

S3:请求调用网关

消费方或系统管理员调用服务网关统一开放的地址,并拼接服务唯一编码,编码即标识,录入必要参数向服务网关发送请求;

S4:匹配路由过滤控制策略

服务网关请求路径携带路由唯一标识,经过网关路由识别,匹配私有过滤规则,私有过滤规则不同网关各自独有,全局过滤器对于所有服务网关均有管控作用;

S5:执行动态路由编排流程

服务网关请求处理过程中,将多个路由资源进行编排,适配http资源和groovy资源,进行不同路由的资源信息转换,并记录不同资源的响应日志信息;

S6:请求返回

路由策略成功执行结束后,服务网关返回服务提供者提供的业务接口数据,并记录返回信息到日志,服务网关调用结束。

更进一步地,在所述步骤S1中,服务提供者提供多个原始资源信息,对不同资源编排操作,确定资源的流向,指定服务名称、服务编码、服务所属系统、服务归属中心、服务请求方式,完成基本信息注册,即动态路由对外的唯一标识及特殊分类。

更进一步地,在所述步骤S1中,在注册完成后,根据路由编排需要进行全局过滤器和私有过滤器的配置,此处基于Spring Cloud Gateway路由规则,配置黑白名单、限流、熔断策略,为动态路由提供策略保障。

更进一步地,在所述步骤S2中,启动Spring Cloud Gateway系统后,路由信息是从微服务动态配置服务nacos中获取,调用nacos提供的对外API完成动态路由变化的实时监听。

更进一步地,在所述步骤S2中,在nacos中建立一个缓存区,专门保存动态路由标识信息,并对此缓存区进行监听,完成对新增路由的监听,即完成了对动态路由配置的实时监听;动态路由信息监听的同时会执行动态路由服务DynamicRouteService,将路由信息按照Spring Cloud Gateway路由规则要求动态添加或修改新的路由信息。

更进一步地,在所述步骤S3中,动态路由提供了统一对外地址,消费方或者系统管理员拼接路由唯一标识endpoint请求调用,输入请求报文信息,请求调用过程中路由能够解析路由信息。

更进一步地,在所述步骤S4中,当请求进入动态路由内部,依据Spring CloudGateway路由规则,指定各类过滤器的执行顺序。

更进一步地,在所述步骤S5中,在服务网关处理过程中,一个资源执行完成后,对资源响应信息进行处理,并将响应信息记录到日志中,获取到响应后的数据流向路由编排中的另一个资源,当此资源为HTTP资源时,将上一个资源响应数据作为下一个资源的入参,在路由内部完成调用;当另一个资源为groovy资源时,根据groovy资源脚本的不同逻辑输出不同结果。

更进一步地,在所述步骤S6中,请求网关在执行过滤及动态编排后,之前注册的业务接口返回数据按照编排处理及按照消费方的要求有了相应的变化,请求结束后返回数据的同时保存日志信息。

本发明还提供了一种基于Spring Cloud Gateway实现的动态路由编排系统,用于供上述的动态路由编排方法使用,包括服务提供者、服务消费者、微服务管控中心、动态路由监听模块、路由过滤规则匹配模块、动态路由编排模块、日志记录中心;

所述服务提供者,用于注册动态路由基本信息,确定动态路由流向及处理要求;

所述服务消费者,用于调用动态路由编排的服务网关,传递路由必要信息与路由进行适配;

所述微服务管控中心,用于缓存动态路由注册的基本信息,开放对外API供网关监听时调用获取;

所述动态路由监听模块,用于监听动态路由的变化,将新增或修改的路由信息实时更新到Spring Cloud Gateway系统路由规则中;

所述路由过滤规则匹配模块,用于保证服务网关的安全可用,提供全局、私有、多维度的策略控制,维护管理整个路由的生命周期的安全策略,为管理人员提供全局管控的平台;

所述动态路由编排模块,用于处理路由内部资源响应信息,编写脚本信息,指定资源流向,将响应信息按照服务提供者要求的格式输出;

所述日志记录中心,用于动态路由编排的运维,通过接收网关请求概要信息、编排过程中响应信息、请求返回信息,监控整个Spring Cloud Gateway系统的调用执行情况,供结果分析所用。

本发明相比现有技术具有以下优点:该基于Spring Cloud Gateway实现的动态路由编排方法,通过实现Spring Cloud Gateway动态路由的编排,完成了一个服务网关的从无到有,服务提供者无需关心动态路由编排细节,只须按要求配置对应的策略信息即可生成一个服务网关,服务网关统一调用地址前缀,依靠全局过滤器集中管控所有网关,根据私有过滤器隔离管控单独网关,调用过程中日志分阶段异步保存,请求返回结果准确可靠,网关性能高可用,值得被推广使用。

附图说明

图1是本发明实施例中基于Spring Cloud Gateway实现的动态路由编排方法的流程示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本实施例提供一种技术方案:一种基于Spring Cloud Gateway实现的动态路由编排方法,包括如下步骤:

步骤S1:注册动态路由规则信息

服务提供者提供所需注册的业务系统接口,完善基本的服务信息,编排资源,确定动态路由流向及编排处理要求;添加必要的过滤到动态路由中,包括黑白名单、限流、熔断等,作为服务网关的限制策略;

步骤S2:启动加载监听动态路由配置

启动Spring Cloud Gateway系统,系统自动监听动态路由的配置,会将规则信息加载到Spring Cloud Gateway路由中,并持续监听,一旦有路由信息发生改变,实时刷新到路由中;

步骤S3:请求调用网关

消费方或系统管理员调用服务网关统一开放的地址,并拼接服务唯一编码,录入必要参数向服务网关发送请求;

步骤S4:匹配路由过滤控制策略

服务网关请求路径携带路由唯一标识,经过网关路由识别,自动匹配私有过滤规则,私有过滤规则不同网关各自独有,全局过滤器对于所有服务网关均有管控作用;

步骤S5:执行动态路由编排流程

服务网关请求处理过程中,将多个路由资源进行编排,适配http资源和groovy资源,进行不同路由的资源信息转换,并记录不同资源的响应日志信息;

步骤S6:请求返回

路由策略成功执行结束后,服务网关返回服务提供者提供的业务接口数据,并记录返回信息到日志,服务网关调用结束。

在本实施例中,步骤S1中,服务提供者提供多个原始资源信息,对不同资源编排操作,确定资源的流向,指定服务名称、服务编码、服务所属系统、服务归属中心、服务请求方式,完成一个基本信息注册,即动态路由对外的唯一标识及特殊分类。在注册完成后,根据路由编排需要进行全局过滤器和私有过滤器的配置,此处基于Spring Cloud Gateway路由规则,配置黑白名单、限流、熔断等策略,为动态路由提供策略保障。

在本实施例中,步骤S2中,一旦启动网关系统(Spring Cloud Gateway系统),便自动监听动态路由信息,此处路由信息是从微服务动态配置服务nacos中获取,调用nacos提供的对外API完成动态路由变化的实时监听,nacos提供的API是无法监听动态路由新增问题,步骤S2中对此在nacos中建立了一个缓存区,专门保存动态路由标识信息,并对此缓存区进行监听,完成对新增路由的监听,也即完成了对动态路由配置的实时监听。动态路由信息监听的同时会执行动态路由服务DynamicRouteService,将路由信息按照Spring CloudGateway路由规则要求动态添加或修改新的路由信息。

在本实施例中,步骤S3中,动态路由提供了统一对外地址,消费方或者系统管理员拼接路由唯一标识endpoint(即服务编码)请求调用,输入请求报文等信息,请求调用过程中路由能够解析路由信息,包括服务编码等,服务编码作为唯一标识,类似通行证进入动态路由编排网关。

在本实施例中,步骤S4中,当请求进入动态路由内部,依据Spring Cloud Gateway路由规则,指定各类过滤器的执行顺序,重写过滤器getOrder方法如下:

返回结果越小越先执行,动态路由编排网关分别执行全局IP黑白名单过滤、全局限流处理、解析路由参数过滤、全局IP维度限流限流、全局应用黑白名单过滤、鉴权过滤、全局用户维度黑白名单过滤、私有服务维度IP黑白名单过滤、私有服务维度服务限流过滤、私有服务+IP组合限流过滤、私有服务维度服务熔断过滤等。其中IP黑白名单限制了只有某些IP能够调用或者某些IP无法调用;在路由参数解析中,解析token、fromIp、body等同时记录日志信息,便于后期统计动态路由调用使用;在鉴权中通过校验appKey,确保应用调用的安全性;在限流过滤中,防止网关路由短时间出现多次请求,超过网关服务承载导致崩溃的现象;在熔断过滤中,若某一个服务出现异常过多,或请求时间过长执行降级机制,保证其他网关的正常调用。

在本实施例中,步骤S5中,在服务网关处理过程中,一个资源执行完成后,需要对资源响应信息进行处理,并将响应信息记录到日志中,保证了处理前数据的备份,获取到响应后的数据流向路由编排中的另一个资源,当此资源为HTTP资源时,将上一个资源响应数据作为下一个资源的入参,在路由内部完成调用;当另一个资源为groovy资源时,根据groovy资源脚本的不同逻辑输出不同结果,比如过滤响应数据或新增标识信息到响应数据中等。

在本实施例中,步骤S6中,请求网关在执行过滤及动态编排后,之前注册的业务接口返回数据按照编排处理及按照消费方的要求有了相应的变化,并经过Spring CloudGateway系统的保护更加安全可用,请求结束后返回数据的同时保存日志信息。

本发明基于Spring Cloud Gateway实现的动态路由编排方法的实现系统,包括服务提供者、服务消费者、微服务管控中心(即图1中的服务管控中心)、动态路由监听模块、路由过滤规则匹配模块、动态路由编排模块、日志记录中心;

所述服务提供者,用于注册动态路由基本信息,包括唯一标识endpoint等,编排资源,确定动态路由流向及处理要求;

所述服务消费者,用于调用动态路由编排的服务网关,传递路由必要信息与路由进行适配;

所述微服务管控中心,用于缓存动态路由注册的基本信息,提供对外API便于网关监听时调用获取;

所述动态路由监听模块,用于监听动态路由的变化,将新增或修改的路由信息实时更新到Spring Cloud Gateway系统路由规则中;

所述路由过滤规则匹配模块,用于保证服务网关的安全可用,提供全局、私有、多维度的策略控制,维护管理整个路由的生命周期的安全策略,保证了动态路由调用的高可用,为管理人员提供了全局管控的平台;

所述动态路由编排模块,用于处理路由内部资源响应信息,编写脚本信息,指定资源流向,将响应信息按照服务提供者要求的格式输出;

所述日志记录中心,用于动态路由编排的运维,通过接收网关请求概要信息、编排过程中响应信息、请求返回信息,监控整个Spring Cloud Gateway系统的调用执行情况,供结果分析所用。

值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。

综上所述,上述实施例的基于Spring Cloud Gateway实现的动态路由编排方法,通过实现Spring Cloud Gateway动态路由的编排,完成了一个服务网关的从无到有,服务提供者无需关心动态路由编排细节,只须按要求配置对应的策略信息即可生成一个服务网关,服务网关统一调用地址前缀,依靠全局过滤器集中管控所有网关,根据私有过滤器隔离管控单独网关,调用过程中日志分阶段异步保存,请求返回结果准确可靠,网关性能高可用,值得被推广使用。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:SID列表的处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!